Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?


Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Strony: [1] 2 3  Wszystkie
DrukujPobierz PDF
Autor Wątek: Opracowanie Skyptu Script-Fu  (Przeczytany 2500 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
mariuszole
Nowicjusz

Reputacja: 3 Offline Offline

Wiadomości: 14
Galeria Użytkownika

mariuszole


Zobacz profil
« : 12.11.2022, 23:56:50 »

Witam potrzebuje skrypt Script-Fu, który:

1. Dokładnie przytnie obraz.
2. Jeśli obraz przekracza 1500px przeskaluje do 1490px, obraz ma być kwadratem, wyśrodkowany, zostanie dodana biała ramka 5px aby cały obraz miał 1500px.
3. Jeśli obraz ma mniej niż 1500px nie będzie skalowany i zostanie dodana biała ramka 5px, obraz ma być kwadratem, wyśrodkowany.
4. Plik zostanie zapisany jako xfc oraz jpg w katalogu z którego zostało otworzone zdjęcie.

Dla osoby obeznanej w temacie to kwadrans pracy, tak przynajmniej myślę, cena jaką proponuje 50zł (przelew) Uśmiech
Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 432
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #1 : 13.11.2022, 12:22:45 »

Co znaczy, że "obraz ma być kwadratem"?
Czy chodzi o to, że one już są kwadratami? Czy, że ma być skalowany do kwadratu? Czyli zawsze skalujemy obraz do wymiarów kwadratu? w górę, czy w dół?
Zapisane
mariuszole
Nowicjusz

Reputacja: 3 Offline Offline

Wiadomości: 14
Galeria Użytkownika

mariuszole


Zobacz profil
« Odpowiedz #2 : 13.11.2022, 14:27:54 »

Pliki do edycji nie zawsze są kwadratami, mogą być prostokątami, plik wyjściowy ma być kwadratem. Skalujemy w dół aby zmniejszyć rozmiar pliku. Skalowanie grafiki w górę raczej pogorszy jej jakość.

Potrzebuje tego skryptu do szybkiej edycji grafiki produktowej - produkt na białym tle gdzie nie dotyka ramki w odpowiedniej rozdzielczości.

Czy istnieje możliwość aby skrypt pobierał nazwę pliku do zapisania z podręcznej pamięci systemu (nazwa skopiowana myszką, prawy przycisk, kopiuj)? Korzystam z Ubuntu.
Czy można tak ustawić skrypt aby poniżej 1500px podciągał obramowanie w gorę do pełnych dziesiątek np. 610x610 lub 750x750px przy czym obraz miał 602x602 i 745x745
« Ostatnia zmiana: 13.11.2022, 16:51:07 wysłane przez mariuszole » Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 432
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #3 : 14.11.2022, 22:37:18 »

To jeszcze nie skończone, ale zerknij, czy o coś takiego chodzi.

Kod:
(define (resize-and-add-border image drawable)
    (gimp-image-undo-group-start image)
    (plug-in-autocrop RUN-NONINTERACTIVE image drawable)

(let* (
(width (car (gimp-image-width image)))
(height (car (gimp-image-height image)))
(new-width (if (< width 1490) width 1490))
(new-height (if (< height 1490) height 1490))
(square-size (if (< new-width new-height) new-width new-height))
)

(gimp-image-scale image square-size square-size)
(gimp-image-resize image (+ square-size 10) (+ square-size 10) 5 5)
(gimp-layer-resize-to-image-size drawable)

(gimp-selection-all image)
(gimp-selection-border image 5)
(gimp-edit-bucket-fill drawable BG-BUCKET-FILL NORMAL-MODE 100 0 0 0 0)
)

    (gimp-image-undo-group-end image)
    (gimp-displays-flush)
)

(script-fu-register "resize-and-add-border"
    "<Image>/Script-Fu/Resize and add border"
    "Automatically adjust contrast of drawable"
    "Ziomioslaw"
    "Ziomioslaw"
    "2022"
    "*"
    SF-IMAGE    "Image"         0
    SF-DRAWABLE "Current Layer" 0
)
Zapisane
mariuszole
Nowicjusz

Reputacja: 3 Offline Offline

Wiadomości: 14
Galeria Użytkownika

mariuszole


Zobacz profil
« Odpowiedz #4 : 14.11.2022, 22:57:51 »

Mniej więcej o to chodzi Uśmiech aby lepiej zobrazować wrzucam zdjęcie pliku wejściowe i wyjściowego, widać co chce osiągnąć.


* plik-wejsciowy.png (170.25 KB, 1257x910 - wyświetlony 12 razy.)

* wyjsciowy.png (174.97 KB, 1265x932 - wyświetlony 11 razy.)
Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 432
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #5 : 15.11.2022, 14:20:38 »

Tu nie ma tej białej ramki, to tak ma być?
A przezroczystość nie zostanie zapisana w jpg
Zapisane
be@
Moderator globalny

Reputacja: 49 Offline Offline

Płeć: Kobieta
GIMP: 2.8
Licencja: CC-BY
Wiadomości: 7 400
Galeria Użytkownika



Zobacz profil
« Odpowiedz #6 : 15.11.2022, 15:59:07 »

A przezroczystość nie zostanie zapisana w jpg
Przy eksporcie do JPG przezroczystość i tak zamieni się na białe tło, o ile w przyborniku jest ustawiony kolor tła na biały, czyli tak jak jest domyślnie.

Z tego co zrozumiałam, obraz ma być przeskalowany z zachowaniem proporcji tak, aby krótszy bok miał te 1490px, a następnie dłuższy bok ma być przycięty do tego samego rozmiaru? I zapewne ma być przycięty jednakowo po obu stronach, aby produkt znajdował się na środku tła? Tylko nie zawsze da się przy takim automatycznym kadrowaniu uniknąć przycięcia fragmentu produktu...
Jeśli wszystkie zdjęcia są renderami na przezroczystym lub całkowicie białym tle, to najlepiej by było najpierw użyć opcji przytnij obraz, która przytnie tylko przezroczyste lub jednolicie białe pixele dookoła produktu (no chyba, że już są tak przycięte, to można pominąć tę operację), a następnie w razie potrzeby przeskalować, aby dłuższy bok miał te 1490px i wrzucić z wyśrodkowaniem na kwadratowe, białe tło o wybranych wymiarach.

A tak z ciekawości, to na Allegro te fotki? Bo jestem ciekawa, na jakiej zasadzie są akceptowane te miniatury tam. Czy to musi być jakiś procent białego, czy chodzi o szerokość białego obramowania? Przykładowo, czy przejdzie miniatura, gdzie produkt jest na ciemnym tle, ale cały obraz ma białą ramkę o szerokości 5px?
« Ostatnia zmiana: 15.11.2022, 17:10:41 wysłane przez be@ » Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 432
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #7 : 15.11.2022, 19:46:08 »

A to jeszcze jedno, bo widzę, że zdjęcie nie zostało przeskalowane, tylko wymiary tego obrazka zostały zmienione. To w końcu jak ma być?
Zapisane
mariuszole
Nowicjusz

Reputacja: 3 Offline Offline

Wiadomości: 14
Galeria Użytkownika

mariuszole


Zobacz profil
« Odpowiedz #8 : 16.11.2022, 00:07:29 »

Przy eksporcie do JPG przezroczystość i tak zamieni się na białe tło, o ile w przyborniku jest ustawiony kolor tła na biały, czyli tak jak jest domyślnie.

Tak, dokładnie.

Z tego co zrozumiałam, obraz ma być przeskalowany z zachowaniem proporcji tak, aby krótszy bok miał te 1490px, a następnie dłuższy bok ma być przycięty do tego samego rozmiaru? I zapewne ma być przycięty jednakowo po obu stronach, aby produkt znajdował się na środku tła? Tylko nie zawsze da się przy takim automatycznym kadrowaniu uniknąć przycięcia fragmentu produktu...
Jeśli wszystkie zdjęcia są renderami na przezroczystym lub całkowicie białym tle, to najlepiej by było najpierw użyć opcji przytnij obraz, która przytnie tylko przezroczyste lub jednolicie białe pixele dookoła produktu (no chyba, że już są tak przycięte, to można pominąć tę operację), a następnie w razie potrzeby przeskalować, aby dłuższy bok miał te 1490px i wrzucić z wyśrodkowaniem na kwadratowe, białe tło o wybranych wymiarach.

Nie zdarzało mi się aby kadrowanie do zawartości czy dokładnie przytnij obcinało produkt, prędzej było niedocięcie, wtedy kubełek w ruch i problem rozwiązany Uśmiech Pracuję zazwyczaj na produktach na białym tle lub przezroczystym - taki jest obecnie standard w fotografii produktowe. Chciałbym mieć produkt na polu kwadratu, tak jest optymalnie dla mnie.


A tak z ciekawości, to na Allegro te fotki? Bo jestem ciekawa, na jakiej zasadzie są akceptowane te miniatury tam. Czy to musi być jakiś procent białego, czy chodzi o szerokość białego obramowania? Przykładowo, czy przejdzie miniatura, gdzie produkt jest na ciemnym tle, ale cały obraz ma białą ramkę o szerokości 5px?

Nikt nie akceptuje miniatur, wszystko odbywa się automatycznie, jeśli nikt nie zgłosi takiego zdjęcia to może wisieć na portalu aukcyjnym. Produkt nie może dotykać ramki, ponieważ wpływa to na jakość oceny zdjęcia i pozycje w wyszukiwarce. Zalecenie jest takie aby produkt był na białym tle.

A to jeszcze jedno, bo widzę, że zdjęcie nie zostało przeskalowane, tylko wymiary tego obrazka zostały zmienione. To w końcu jak ma być?

Skalowanie dopiero powyżej 1500px, podany przykład miał mniej niż 1500px i zmianie podlegały tylko wymiary - produkt ma być wystarczająco czytelny i w miarę szybko się wczytywać.
Zapisane
be@
Moderator globalny

Reputacja: 49 Offline Offline

Płeć: Kobieta
GIMP: 2.8
Licencja: CC-BY
Wiadomości: 7 400
Galeria Użytkownika



Zobacz profil
« Odpowiedz #9 : 16.11.2022, 15:35:53 »

A jeśli render ma dokładnie 1500px, czyli nie ma być skalowany, to przecież będzie dotykał krawędzi obrazu. Po dodaniu obramowania natomiast przekroczy wymiary, a jeśli obramowanie zostanie dodane wewnątrz, to zakryje część produktu...

Wydaje mi się, że skoro obrazem wejściowym jest render z tłem przyciętym do zawartości (tak przynajmniej zrozumiałam i tak wynika z załączonego przykładu), to należałoby go przeskalować do 1490px, jeśli te wymiary przekracza i wrzucić wtedy na biały kwadrat o boku 1500px. Dobrze myślę?
Zapisane
mariuszole
Nowicjusz

Reputacja: 3 Offline Offline

Wiadomości: 14
Galeria Użytkownika

mariuszole


Zobacz profil
« Odpowiedz #10 : 16.11.2022, 15:57:38 »

Tak dokładnie, nic dodać nic ując Uśmiech
Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 432
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #11 : 16.11.2022, 21:19:31 »

Spróbujcie teraz:

Kod:
(define (resize-and-add-border image drawable)
(gimp-image-undo-group-start image)
(plug-in-autocrop RUN-NONINTERACTIVE image drawable)

(let* (
(square-size 1500)
(current-width (car (gimp-image-width image)))
(current-height (car (gimp-image-height image)))
(wanted-width (min (- square-size 10) current-width))
(wanted-height (min (- square-size 10) current-height))
(ratio (min (/ wanted-width current-width) (/ wanted-height current-height)))
(width (* ratio current-width))
(height (* ratio current-height))
)

(gimp-image-scale image width height)
(gimp-image-resize image square-size square-size (/ (- square-size width) 2) (/ (- square-size height) 2))
)

(gimp-image-undo-group-end image)
(gimp-displays-flush)
)

(script-fu-register "resize-and-add-border"
"<Image>/Script-Fu/Resize and add border"
"Automatically adjust contrast of drawable"
"Ziomioslaw"
"Ziomioslaw"
"2022"
"*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Current Layer" 0
)

Skaluje do max 1490 z zachowaniem proporcji, i umieszcza to w kwadracie, na środku.
Zapisane
mariuszole
Nowicjusz

Reputacja: 3 Offline Offline

Wiadomości: 14
Galeria Użytkownika

mariuszole


Zobacz profil
« Odpowiedz #12 : 16.11.2022, 22:45:39 »

Sprawdziłem, ładnie działa dla grafik powyżej 1500px, poniżej 1500px powiększa wymiary płótna do 1500px a pasuje, żeby nie skalował w górę.
Zapisane
be@
Moderator globalny

Reputacja: 49 Offline Offline

Płeć: Kobieta
GIMP: 2.8
Licencja: CC-BY
Wiadomości: 7 400
Galeria Użytkownika



Zobacz profil
« Odpowiedz #13 : 16.11.2022, 22:55:57 »

Hmm, ja cały czas rozumiałam, że wymiary płótna mają wynosić 1500 x 1500px, a tylko rendery nie mają być skalowane, jeśli nie przekraczają 1490px. Sam potwierdziłeś, że ma być tak, jak pisałam w poprzednim poście, to nie wiem , o co chodzi. Testowałam skrypt i nie skaluje samego rendera w górę, a jedynie wrzuca na tło o boku 1500px.

Czyli to ma być tak, że jeśli render ma mniej niż 1490px, to ma być wrzucony na kwadratowe tło o boku o 10px dłuższym, niż dłuższy bok rendera, a nie na kwadrat o boku 1500px?
Zapisane
Strony: [1] 2 3  Wszystkie
DrukujPobierz PDF
Polskie Forum Użytkowników GIMP-aHyde zoneBazarZlecę / KupięWątek: Opracowanie Skyptu Script-Fu
Skocz do: