DekoGlas
Nowicjusz
Reputacja: 0
Offline
GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10 Galeria Użytkownika
|
 |
« : 04.09.2016, 15:29:35 » |
|
Dzień dobry,
mam 900 plików png o rozmiarze 200 px x 200 px. Mam też jeden plik o wymiarach 1000 px x 1000 px, który ma służyć jako tło dla tych PNG. Szukam funkcji batchowej podobnej do dodawania znaku wodnego, tyle że swój plik chcę podłożyc pod obrazki, a nie na nie nałożyć.
Grzebałem dziś w BIMPie, ale nie udało mi się niczego wykombinować. Czy ktoś wie, jak sobie poradzić z problemem? Nie dysponuję Photoshopem, pracuję na darmowym oprogramowaniu.
|
|
« Ostatnia zmiana: 14.09.2016, 20:15:54 wysłane przez be@ »
|
Zapisane
|
|
|
|
be@
Moderator globalny
Reputacja: 49
Offline
Płeć: 
GIMP: 2.8
Licencja: CC-BY
Wiadomości: 6 829 Galeria Użytkownika
|
 |
« Odpowiedz #1 : 04.09.2016, 15:34:43 » |
|
|
|
|
Zapisane
|
|
|
|
DekoGlas
Nowicjusz
Reputacja: 0
Offline
GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10 Galeria Użytkownika
|
 |
« Odpowiedz #2 : 04.09.2016, 15:50:36 » |
|
Be@, dziękuję za szybką odpowiedź, ale to chyba nie na moje pytanie.
Mam 900 odrębnych plików PNG, a nie 900 warstw, z których chcę zrobić pliki.
|
|
|
Zapisane
|
|
|
|
be@
Moderator globalny
Reputacja: 49
Offline
Płeć: 
GIMP: 2.8
Licencja: CC-BY
Wiadomości: 6 829 Galeria Użytkownika
|
 |
« Odpowiedz #3 : 04.09.2016, 15:58:46 » |
|
A jaki to problem otworzyć wszystkie te pliki jako warstwy, podłożyć tło skryptem z pierwszego odnośnika i wyeksportować każdą warstwę do osobnego pliku za pomocą tego drugiego skryptu?
|
|
|
Zapisane
|
|
|
|
Hasia
Moderator globalny
Reputacja: 38
Offline
Płeć: 
GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 1 455 Galeria Użytkownika
Czasami nie jestem sobą
|
 |
« Odpowiedz #4 : 04.09.2016, 15:59:04 » |
|
Jeśli otworzysz ten plik png i te 900 jako warstwy i użyjesz najpierw skryptu do łączenia warstw a później do eksportu warstw jako oddzielne pliki, wtedy powinieneś otrzymać to o czym mówisz. Jedyne czym martwiłabym się, to to czy GIMP pociągnie obraz, który ma 900 warstw, dlatego radziłabym otwierać je tak mniej więcej po 100.
|
|
|
Zapisane
|
★
|
|
|
DekoGlas
Nowicjusz
Reputacja: 0
Offline
GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10 Galeria Użytkownika
|
 |
« Odpowiedz #5 : 04.09.2016, 18:05:35 » |
|
Dziękuję! Udało się. Do wyżej wymienionych skryptów dociągnałem jeszcze sg-dissolve-group.scm ( https://www.gimpuj.info/index.php/topic,62176.msg287065.html#msg287065 ) dla rozgrupowania warstw. Musiałem wcześniej pogrupować tych 1600 (!) warstw, żeby je wspólnie za jednym razem przesunąć w kadrze (nie chciałem ich po środku tła). Udało się za jednym zamachem wtopić 1600 (a nie 900, jak błędnie podałem) obrazków w tło. Zajęło to godzinę, wykorzystałem 6 GB z dostępnych 8 GB pamięci i 60 % procesora, ale efekt jest rewelacyjny. Ślicznie Wam dziękuję za podpowiedź.
|
|
|
Zapisane
|
|
|
|
be@
Moderator globalny
Reputacja: 49
Offline
Płeć: 
GIMP: 2.8
Licencja: CC-BY
Wiadomości: 6 829 Galeria Użytkownika
|
 |
« Odpowiedz #6 : 04.09.2016, 18:12:51 » |
|
Grupowanie nie było konieczne. Wystarczyło w oknie warstw kliknąć w ikonę łańcucha z wciśniętym SHIFT-em, aby połączyć wszystkie warstwy. Tak połączone można przesuwać.
|
|
|
Zapisane
|
|
|
|
DekoGlas
Nowicjusz
Reputacja: 0
Offline
GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10 Galeria Użytkownika
|
 |
« Odpowiedz #7 : 12.07.2017, 18:45:57 » |
|
Chętnie zamówię skrypt wsadowy, który będzie to robił automatycznie.
|
|
|
Zapisane
|
|
|
|
be@
Moderator globalny
Reputacja: 49
Offline
Płeć: 
GIMP: 2.8
Licencja: CC-BY
Wiadomości: 6 829 Galeria Użytkownika
|
 |
« Odpowiedz #8 : 13.07.2017, 09:43:16 » |
|
Czyli chcesz skrypt, który będzie otwierać tło, następnie otwierać zdjęcie jako warstwę i ustawiać ją w określonym położeniu, po czym eksportować do PNG, usuwać warstwę ze zdjęciem i otwierać następną fotkę, ustawiać w wybranym miejscu, eksportować itd.?
|
|
|
Zapisane
|
|
|
|
DekoGlas
Nowicjusz
Reputacja: 0
Offline
GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10 Galeria Użytkownika
|
 |
« Odpowiedz #9 : 14.07.2017, 06:23:59 » |
|
Mniej więcej. Uszczegółowię.
Skrypt, który: 1. otwiera tło (np. background.jpg; np. 1500 x 1500 px), 2. otwiera wcześniej przygotowane zdjęcie PNG (np. 0001.png z zachowanym kawałkiem przezroczystości dlatego png; np. 500 x 500 px) jako warstwę widoczną nad tłem, 3. ustawia ją w określonym położeniu, 4. łączy obie warstwy, po czym eksport do JPG z nazwą 0001.jpg (a nie z nazwą tła), 5. usuwa warstwę ze zdjęciem i otwiera następną fotkę (0002.png), ... i jak wyżej nawet dla kilku tysięcy zdjęć.
|
|
|
Zapisane
|
|
|
|
be@
Moderator globalny
Reputacja: 49
Offline
Płeć: 
GIMP: 2.8
Licencja: CC-BY
Wiadomości: 6 829 Galeria Użytkownika
|
 |
« Odpowiedz #10 : 14.07.2017, 07:18:06 » |
|
Nie można usunąć warstwy po jej połączeniu z tłem. Trzeba by się cofać w historii. Poza tym po co chcesz łączyć obie warstwy? Przecież to nie robi żadnej różnicy. Bez względu na to, czy warstwy zostaną połączone czy nie, po wyeksportowaniu do JPG obraz będzie wyglądać tak samo, więc jest to krok całkowicie zbędny.
|
|
|
Zapisane
|
|
|
|
DekoGlas
Nowicjusz
Reputacja: 0
Offline
GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10 Galeria Użytkownika
|
 |
« Odpowiedz #11 : 14.07.2017, 11:17:49 » |
|
Jeśli po eksporcie będą połączone, to wystarczy. Teraz kwestia ceny. :-)
|
|
|
Zapisane
|
|
|
|
be@
Moderator globalny
Reputacja: 49
Offline
Płeć: 
GIMP: 2.8
Licencja: CC-BY
Wiadomości: 6 829 Galeria Użytkownika
|
 |
« Odpowiedz #12 : 14.07.2017, 11:32:08 » |
|
A to już musisz z Ziomioslawem gadać, bo to on pisze skrypty  W każdym razie potrzebne są jeszcze współrzędne położenia tego zdjęcia, skoro ma zostać umieszczone w wybranym miejscu, a nie jest to środek obrazu.
|
|
|
Zapisane
|
|
|
|
Ziomioslaw
Administrator
Reputacja: 46
Offline
Płeć: 
GIMP: 2.8
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 327 Galeria Użytkownika
Cyklista Apokalipsy
|
 |
« Odpowiedz #13 : 14.07.2017, 13:13:59 » |
|
Co właściwie znaczy "3. ustawia ją w określonym położeniu"? czy chodzi o jakieś stałe wartości?
|
|
|
Zapisane
|
|
|
|
Ziomioslaw
Administrator
Reputacja: 46
Offline
Płeć: 
GIMP: 2.8
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 327 Galeria Użytkownika
Cyklista Apokalipsy
|
 |
« Odpowiedz #14 : 14.07.2017, 19:28:25 » |
|
Zerknij na to: ; taken from: https://stackoverflow.com/questions/1386293/how-to-parse-out-base-file-name-using-script-fu (define (morph-filename orig-name new-extension) (let* ((buffer (vector "" "" ""))) (if (re-match "^(.*)[.]([^.]+)$" orig-name buffer) (string-append (substring orig-name 0 (car (vector-ref buffer 2))) new-extension) ) ) )
(define (batch-put-images-on-background file-pattern background picture-x picture-y) (let* ( (filelist (cadr (file-glob file-pattern 1))) )
(while (not (null? filelist)) (let* ( (filename (car filelist)) (output-file-name (morph-filename filename "jpg")) (image (car (gimp-file-load RUN-NONINTERACTIVE background background))) (drawable (car (gimp-image-get-active-layer image))) (temp-layer (car (gimp-file-load-layer RUN-NONINTERACTIVE image filename))) )
(gimp-image-add-layer image temp-layer -1) (gimp-layer-set-offsets temp-layer picture-x picture-y) (gimp-image-flatten image)
(gimp-file-save RUN-NONINTERACTIVE image (car (gimp-image-get-active-layer image)) output-file-name output-file-name )
(gimp-image-delete image) ) (set! filelist (cdr filelist)) ) )) Wywołuje się to: gimp -i -b '(batch-put-images-on-background "*.png" "background.jpg" 30 70)' -b '(gimp-quit 0)'
|
|
|
Zapisane
|
|
|
|
DekoGlas
Nowicjusz
Reputacja: 0
Offline
GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10 Galeria Użytkownika
|
 |
« Odpowiedz #15 : 15.07.2017, 11:52:59 » |
|
Co właściwie znaczy "3. ustawia ją w określonym położeniu"? czy chodzi o jakieś stałe wartości?
Tak i nie. Dziś mam do nałożenia na tło 1000 obrazków w miejscu o współrzędnych x, y. Ale kolejnego dnia mam inne zadanie i 2000 innych obrazków muszę nałożyć na inne tło w innym miejscu o współrzędnych a, b.
|
|
|
Zapisane
|
|
|
|
DekoGlas
Nowicjusz
Reputacja: 0
Offline
GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10 Galeria Użytkownika
|
 |
« Odpowiedz #16 : 15.07.2017, 11:57:17 » |
|
... W każdym razie potrzebne są jeszcze współrzędne położenia tego zdjęcia, skoro ma zostać umieszczone w wybranym miejscu, a nie jest to środek obrazu.
Otóż to. jednego dnia będą to współrzędne x, y. Za miesiąc a, b.
|
|
|
Zapisane
|
|
|
|
Ziomioslaw
Administrator
Reputacja: 46
Offline
Płeć: 
GIMP: 2.8
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 327 Galeria Użytkownika
Cyklista Apokalipsy
|
 |
« Odpowiedz #17 : 15.07.2017, 12:59:15 » |
|
To w takim razie dobrze zrobiłem, że uczyniłem położenie obrazka na tle parametrami.
|
|
|
Zapisane
|
|
|
|
Ziomioslaw
Administrator
Reputacja: 46
Offline
Płeć: 
GIMP: 2.8
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 327 Galeria Użytkownika
Cyklista Apokalipsy
|
 |
« Odpowiedz #18 : 17.09.2019, 22:39:01 » |
|
Prześlij nam PW.
|
|
|
Zapisane
|
|
|
|
DekoGlas
Nowicjusz
Reputacja: 0
Offline
GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10 Galeria Użytkownika
|
 |
« Odpowiedz #19 : 19.09.2019, 19:14:25 » |
|
Panel wiadomości PW nie działa, Pana prywatny mail na jabber też nie.
|
|
|
Zapisane
|
|
|
|
Ziomioslaw
Administrator
Reputacja: 46
Offline
Płeć: 
GIMP: 2.8
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 327 Galeria Użytkownika
Cyklista Apokalipsy
|
 |
« Odpowiedz #20 : 20.09.2019, 09:19:53 » |
|
Dostałem PW, odpisałem nawet. Czemu nie działa PW?
|
|
|
Zapisane
|
|
|
|