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

Polskie Forum Użytkowników GIMP-aOgólne dyskusjePomocna dłońGIMP - pomoc (Moderator: be@)Wątek: [ROZ] Nakładanie kilkuset plików PNG na jedno i to samo tło
Strony: 1 2 3 [Wszystkie]
DrukujPobierz PDF
Autor Wątek: [ROZ] Nakładanie kilkuset plików PNG na jedno i to samo tło  (Przeczytany 11316 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
DekoGlas
Nowicjusz

Reputacja: 0 Offline Offline

GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10
Galeria Użytkownika



Zobacz profil
« : 04.09.2016, 16: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, 21:15:54 wysłane przez be@ » 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 #1 : 04.09.2016, 16:34:43 »

http://www.gimpuj.info/index.php/topic,52460.0.html + http://www.gimpuj.info/index.php/topic,34874.0.html
Zapisane
DekoGlas
Nowicjusz

Reputacja: 0 Offline Offline

GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10
Galeria Użytkownika



Zobacz profil
« Odpowiedz #2 : 04.09.2016, 16: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 Offline

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



Zobacz profil
« Odpowiedz #3 : 04.09.2016, 16: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: 39 Offline Offline

Płeć: Kobieta
GIMP: 2.10
Licencja: Copyright
Wiadomości: 1 495
Galeria Użytkownika


Czasami nie jestem sobą


Zobacz profil WWW
« Odpowiedz #4 : 04.09.2016, 16: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 Offline

GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10
Galeria Użytkownika



Zobacz profil
« Odpowiedz #5 : 04.09.2016, 19: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 Offline

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



Zobacz profil
« Odpowiedz #6 : 04.09.2016, 19: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 Offline

GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10
Galeria Użytkownika



Zobacz profil
« Odpowiedz #7 : 12.07.2017, 19:45:57 »

Chętnie zamówię skrypt wsadowy, który będzie to robił automatycznie.
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 #8 : 13.07.2017, 10: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 Offline

GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10
Galeria Użytkownika



Zobacz profil
« Odpowiedz #9 : 14.07.2017, 07: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 Offline

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



Zobacz profil
« Odpowiedz #10 : 14.07.2017, 08: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 Offline

GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10
Galeria Użytkownika



Zobacz profil
« Odpowiedz #11 : 14.07.2017, 12:17:49 »

Jeśli po eksporcie będą połączone, to wystarczy.
Teraz kwestia ceny. :-)
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 #12 : 14.07.2017, 12:32:08 »

A to już musisz z Ziomioslawem gadać, bo to on pisze skrypty Uśmiech
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 Offline

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


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #13 : 14.07.2017, 14: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 Offline

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


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #14 : 14.07.2017, 20:28:25 »

Zerknij na to:

Kod:
; 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:

Kod:
gimp -i -b '(batch-put-images-on-background "*.png" "background.jpg" 30 70)' -b '(gimp-quit 0)'
Zapisane
DekoGlas
Nowicjusz

Reputacja: 0 Offline Offline

GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10
Galeria Użytkownika



Zobacz profil
« Odpowiedz #15 : 15.07.2017, 12: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 Offline

GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10
Galeria Użytkownika



Zobacz profil
« Odpowiedz #16 : 15.07.2017, 12: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 Offline

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


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #17 : 15.07.2017, 13: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 Offline

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


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #18 : 17.09.2019, 23:39:01 »

Prześlij nam PW.
Zapisane
DekoGlas
Nowicjusz

Reputacja: 0 Offline Offline

GIMP: GIMP Painter 2.8
Licencja: Copyright
Wiadomości: 10
Galeria Użytkownika



Zobacz profil
« Odpowiedz #19 : 19.09.2019, 20:14:25 »

Panel wiadomości PW nie działa, Pana prywatny mail na jabber też nie.
Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

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


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #20 : 20.09.2019, 10:19:53 »

Dostałem PW, odpisałem nawet.
Czemu nie działa PW?
Zapisane
DecoCat
Nowicjusz

Reputacja: 0 Offline Offline

Wiadomości: 8
Galeria Użytkownika

DecoCat


Zobacz profil
« Odpowiedz #21 : 15.09.2021, 17:39:42 »

Dzień dobry,

czy ktoś zechciałby mi powiedzieć, wskazać link, jak skorzystać z tego typu skryptu?

Cytuj
Wywołuje się to:

[code]gimp -i -b '(batch-put-images-on-background "*.png" "background.jpg" 30 70)' -b '(gimp-quit 0)'

Gdzie wkleić skrypt? W jakiej postaci? Czy będzie dostępny z poziomu menu? Potrzebuje instrukcji krok po kroku.
Pozdrawiam



Zerknij na to:

[code]; taken from: https://stackoverflow.com/questions/1386293/how-to-parse-out-base-file-name-using-script-fu
(define (morph-filename orig-name new-extension)
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 #22 : 15.09.2021, 19:47:25 »

Wkleić do notatnika i zapisać z rozszerzeniem SCM, a następnie wrzucić do folderu scripts
Zapisane
DecoCat
Nowicjusz

Reputacja: 0 Offline Offline

Wiadomości: 8
Galeria Użytkownika

DecoCat


Zobacz profil
« Odpowiedz #23 : 15.09.2021, 20:48:57 »

Be@, dziękuję, a gdzie się wywołuje?

1. Wkleić do notatnika i zapisać z rozszerzeniem SCM, a następnie wrzucić do folderu scripts
2. Wywołuje się to:
Kod:
gimp -i -b '(batch-put-images-on-background "*.png" "background.jpg" 30 70)' -b '(gimp-quit 0)'
3. A gdzie się wywołuje?
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 #24 : 15.09.2021, 20:52:44 »

Skrypt po prostu pojawi się w menu, jeśli będzie prawidłowo zapisany. Ew. trzeba odświeżyć skrypty albo zrestartować program jeśli był włączony podczas dodawania skryptu. Nigdy nie pamiętam, jakie trzeba wybrać kodowanie podczas zapisu, ale chyba UTF-8
Zapisane
DecoCat
Nowicjusz

Reputacja: 0 Offline Offline

Wiadomości: 8
Galeria Użytkownika

DecoCat


Zobacz profil
« Odpowiedz #25 : 15.09.2021, 21:20:58 »

Ok, po prostu pojawi się w menu. To po co jest wywołanie, o którym pisze Ziomioslaw? I gdzie to wywołać?
Kod:
gimp -i -b '(batch-put-images-on-background "*.png" "background.jpg" 30 70)' -b '(gimp-quit 0)'
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 #26 : 15.09.2021, 21:23:04 »

A to Ziomioslawa pytaj, ale wątpię, żeby odpowiedział cokolwiek zrozumiałego Mrugnięcie
Zapisane
DecoCat
Nowicjusz

Reputacja: 0 Offline Offline

Wiadomości: 8
Galeria Użytkownika

DecoCat


Zobacz profil
« Odpowiedz #27 : 15.09.2021, 22:48:30 »

A to Ziomioslawa pytaj, ale wątpię, żeby odpowiedział cokolwiek zrozumiałego Mrugnięcie

Właśnie jego pytam. Uśmiech
Zapisane
DecoCat
Nowicjusz

Reputacja: 0 Offline Offline

Wiadomości: 8
Galeria Użytkownika

DecoCat


Zobacz profil
« Odpowiedz #28 : 16.09.2021, 00:01:37 »

Be@, w takim układzie zapytam inaczej. Jest na forum ktoś inny, kto pociągnie temat równie dobrze, ale czasowo sprawniej niż Ziomioslaw?
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 #29 : 16.09.2021, 09:39:57 »

Były tu osoby znające się na skryptowaniu, ale od dłuższego czasu nie zaglądają na forum Smutny
Możesz spróbować wysłać pw np. do POGO czy MareroQ, albo jeśli znasz angielski, to zapytaj na forum gimpchat.com. MareroQ też tam urzęduje Mrugnięcie
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 #30 : 16.09.2021, 10:28:11 »

Wydaje mi się, że to wywołanie trzeba wpisać w konsolę:

Zapisane
DecoCat
Nowicjusz

Reputacja: 0 Offline Offline

Wiadomości: 8
Galeria Użytkownika

DecoCat


Zobacz profil
« Odpowiedz #31 : 16.09.2021, 18:29:31 »

Ślicznie dziękuję za cenne wskazówki!
Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

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


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #32 : 16.09.2021, 20:12:06 »

Ok, po prostu pojawi się w menu. To po co jest wywołanie, o którym pisze Ziomioslaw? I gdzie to wywołać?
Kod:
gimp -i -b '(batch-put-images-on-background "*.png" "background.jpg" 30 70)' -b '(gimp-quit 0)'

Przecież to wywołanie z powłoki systemowej. To co się popularnie nazywa konsolą.
Zapisane
DecoCat
Nowicjusz

Reputacja: 0 Offline Offline

Wiadomości: 8
Galeria Użytkownika

DecoCat


Zobacz profil
« Odpowiedz #33 : 16.09.2021, 20:21:27 »

Dzięki.
Zapisane
DecoCat
Nowicjusz

Reputacja: 0 Offline Offline

Wiadomości: 8
Galeria Użytkownika

DecoCat


Zobacz profil
« Odpowiedz #34 : 16.09.2021, 20:38:15 »

Be@, niestety MareroQ był tu ostatnio dokładnie pięć lat temu, a Pogo 3 lata temu. Smutny
Zapisane
Strony: 1 2 3 [Wszystkie]
DrukujPobierz PDF
Polskie Forum Użytkowników GIMP-aOgólne dyskusjePomocna dłońGIMP - pomoc (Moderator: be@)Wątek: [ROZ] Nakładanie kilkuset plików PNG na jedno i to samo tło
Skocz do: