Polskie Forum Użytkowników GIMP-a

Hyde zone => [Archiwum] Pomocna dłoń - GIMP => Wątek zaczęty przez: glasspixel on 15.01.2010, 15:52:11



Tytuł: [ROZ] Zakończenie wywołania skryptu GIMP z batcha (na MS Windows)
Wiadomość wysłana przez: glasspixel on 15.01.2010, 15:52:11
Witam,
Proszę o pomoc w następującej kwestii:
Problem 1.
Wywołuję GIMPa z pliku wsadowego gimp_call.bat
Kod:
D:\Programy\GIMP-2.0\bin\gimp-2.6.exe -f -s --batch="(script-fu-GM_design)" --batch="(gimp-quit 1)"
GIMP pięknie się uruchamia, robi, co trzeba w skrypcie i kończy w czarnym oknie konsoli z komunikatem: (wprowadzenie dowolnego znaku zamyka okno).

W moim przypadku chciałbym, aby konsola nie czekała na dowolny klawisz, tylko, żeby program się zakończył automatycznie (jak mu sugeruję w (gimp-quit 1) ), a batch kontynuował pracę.

Prośba o podpowiedź, czy można to jakoś obejść?

Problem 2.
Ponieważ GIMP ma opcję przełącznika -n (new-instance) zakładałem, że jak GIMP już jest uruchomiony w pamięci, to kolejne wywołanie GIMPa bez tego przełącznika, nie uruchomi mi go ponownie. Niestety GIMP uruchamia się znowu.

Prośba o podpowiedź, jak tego uniknąć

PS: GIMP 2.6 + WIN XP


Tytuł: Odp: Zakończenie wywołania skryptu GIMP z batcha (na MS Windows)
Wiadomość wysłana przez: Ziomioslaw on 15.01.2010, 18:49:32
Hmm, nie sprawdzę tego teraz na Windowsie, ale z opisu funkcji gimp-quit wynika, że ten jej parametr służy do:
Kod:
Force GIMP to quit without asking (TRUE or FALSE)

Może zmień spróbuj z zerem.


Tytuł: Odp: Zakończenie wywołania skryptu GIMP z batcha (na MS Windows)
Wiadomość wysłana przez: glasspixel on 15.01.2010, 20:49:56
Tak, próbowałem już z zerem, chociaż bardziej bym oczekiwał właśnie, że to wartość TRUE będzie wymuszać zamknięcie nawet przy niezapisanych oknach.
Można by nawet przyjąć, że GIMP jako aplikacja jest zamykany, ponieważ po użyciu przełącznika --verbose dostajemy więcej komunikatów co się dzieje po zakończeniu skryptu:
Kod:
batch command executed successfully
EXIT: gimp_exit
EXIT: gui_exit_callback
....
EXIT: gimp_real_exit
....
EXIT: gui_exit_after_callback
EXIT: batch_exit_after_callback

(Wprowadzenie dowolnego znaku zamyka okno)
Natomiast okno konsoli nadal jest otwarte w oczekiwaniu na klawisz i póki go nie zamknę, to dalsze przetwarzanie wsadu jest wstrzymane.
To wygląda tak, że trzeba proces konsoli skillować :-(

Co do przełącznika -n, to uruchomienie dwóch instancji GIMPa (z przełącznikami -i) powoduje, że pojawiają się w systemie 2 czynne procesy gimpa jednakowego rozmiaru ponad 16MB, czyli mimo braku -n i tak uruchamiana jest nowa instancja programu. Dziwne...


Tytuł: Odp: Zakończenie wywołania skryptu GIMP z batcha (na MS Windows)
Wiadomość wysłana przez: Ziomioslaw on 15.01.2010, 21:48:24
Czekaj, uruchamiasz ten program bezpośrednio w konsoli, czy on sam sobie ją otwiera?


Tytuł: Odp: Zakończenie wywołania skryptu GIMP z batcha (na MS Windows)
Wiadomość wysłana przez: glasspixel on 15.01.2010, 23:24:47
Uruchamiam z konsoli gimp_call.bat, który jako jedno z poleceń ma wywołanie GIMPa ze skryptem (bez interfejsu graficznego).
I właśnie to wywołanie GIMPa otwiera dodatkowe okno - konsolę GIMPa (jeśli się użyje przełącznika -c to polecenia (gimp-message "xxx") będą drukować w tej właśnie konsoli.


Tytuł: Odp: Zakończenie wywołania skryptu GIMP z batcha (na MS Windows)
Wiadomość wysłana przez: Ziomioslaw on 16.01.2010, 19:24:49
Już mam, znalazłem pod adresem: http://www.gimptalk.com/forum/script-converting-svg-to-gif-file-hands-free--t37463.html
ostatni post:

Cytuj
I was using "gimp-2.6.exe" not "gimp-console-2.6.exe"

I tak właśnie trzeba zrobić, sprawdziłem, działa. Czyli musisz sobie zamienić program z jakiego uruchamiasz:

Kod:
D:\Programy\GIMP-2.0\bin\gimp-console-2.6.exe -f -s --batch="(script-fu-GM_design)" --batch="(gimp-quit 1)"

A przy okazji - trzeba by dodać chyba opcje "i" - bez interface'u.


Tytuł: Odp: Zakończenie wywołania skryptu GIMP z batcha (na MS Windows)
Wiadomość wysłana przez: glasspixel on 18.01.2010, 14:46:17
Dzięki za pomoc.
Tak, faktycznie to zadziałało zgodnie z oczekiwaniami.