O czym to ja... aha - już wiem:
Używanie GIMPa z linii poleceń.
Może zanim przystąpie, to pytanie do czego można tego używać?Np.: głównie do wywoływania skryptów na obrazkach bez potrzeby uruchamiania całego GIMPa i klikania w nim, a co za tym idzie - wywoływania do masowego przetwarzania obrazków. Ale nie tylko. Czasem mamy problemy z jakimiś dodatkami do GIMPa, wartałoby więc uruchomić go bez ich ładowania, a może poprostu wiemy, że nie będziemy potrzebować pędzli, więc zależy nam, żeby GIMP ich nie uruchamiał.
Czy istnieją łatwiejsze sposoby na masówki?O masowym przetwarzaniu fotografii bez użycia skryptów poczytać możesz tu:
http://www.gimpuj.info/edycja-fotografii/tutorial-gimp-przetwarzanie-wsadowe-fotografii-t1264.0.htmlOpisana tam metoda niestety nie zawsze jest wystarczającą. Autorzy zaimplementowali tam wiele filtrów, ale nie zimplenetowali wszystkich. Nie bardzo można pozwolić sobie na takie akcje jak dodawnie tekstu np. czy reagowania na pewne czynniki.
Czyli jest pięknie?Wywoływanie skryptów wymaga od nas jednak: tychże skryptów właśnie. Ba! Czasem też będzie trzeba je samemu napisać. No cóż. GIMP udostępnia sporo języków między innymi sławionego Pythona, ale także lubianego przez wszystkich Schema;)
Brrr.... konsolaNie bójmy się konsoli, po odrobinie wprawy jest bardzo sprawnym narzędziem.
Przyjrzyjmy się więc co GIMP nam oferuje, wpiszmy:
Proste, co nie? A co się pokazało; powinno to wyglądać jak poniżej:
Użycie:
gimp [OPCJA...] [PLIK|URI...]
GNU Image Manipulation Program
Opcje pomocy:
-?, --help Wyświetlenie opcji pomocy
--help-all Wyświetlenie wszystkich opcji pomocy
--help-gtk Wyświetla opcje GTK+
Opcje aplikacji:
-v, --version Wyświetla informację o wersji i wychodzi
--license Wyświetla informację o licencji i wychodzi
--verbose Wyświetla dodatkowe informacje
-n, --new-instance Uruchamia nowy program GIMP
-a, --as-new Otwiera obraz jako nowy
-i, --no-interface Uruchamia bez interfejsu użytkownika
-d, --no-data Nie wczytuje pędzli, gradientów, deseni, ...
-f, --no-fonts Nie wczytuje żadnych czcionek
-s, --no-splash Nie wyświetla okna startowego
--no-shm Nie wykorzystuje pamięci dzielonej pomiędzy programem GIMP a wtyczkami
--no-cpu-accel Nie wykorzystuje specjalnych instrukcji procesora przyśpieszających działanie
--session=<name> Wykorzystuje alternatywny plik sessionrc
-g, --gimprc=<filename> Wykorzystuje alternatywny systemowy plik gimprc
--system-gimprc=<filename> Wykorzystuje alternatywny systemowy plik gimprc
-b, --batch=<command> Polecenie wsadowe do uruchomienia (może być używane wielokrotnie)
--batch-interpreter=<proc> Procedura do polecenia procesu wsadowego z
-c, --console-messages Wyświetla ostrzeżenia w konsoli zamiast wyświetlać w oknie dialogowym
--pdb-compat-mode=<mode> Tryb kompatybilności PDB (off|on|warn)
--stack-trace-mode=<mode> Debuguje w przypadku nieoczekiwanego zamknięcia programu (never|query|always)
--debug-handlers Aktywuje obsługę analizowania błędów przy mniej groźnych sygnałach
--g-fatal-warnings Traktuje wszystkie ostrzeżenia poważnie
--dump-gimprc Wypisuje plik gimprc z ustawieniami domyślnymi
--display=EKRAN Wykorzysywany ekran X
Prześledźmy znaczenie każdej z komend:
-?, --help Wyświetlenie opcji pomocy
--help-all Wyświetlenie wszystkich opcji pomocy
--help-gtk Wyświetla opcje GTK+
-v, --version Wyświetla informację o wersji i wychodzi
--license Wyświetla informację o licencji i wychodzi
To już znamy, nie daje w sumie nic nowego. A... teraz, jak ktoś nas zapyta o wersję GIMPa, to już wiecie, jak szybko ją uzyskać, nie uruchamiając całości. Parametr "--help-all" wyświetla dodatkowo też to (oprócz powyższego), co wyświetla się kiedy wklepiemy "--help-gtk". Z kolei parametry dla obsługi GTK+ (przypomnę, to ta biblioteka na której zbudowany jest GIMP, a która stała się podstawą GNOME'a) nie będą nas dziś interesować.
--verbose Wyświetla komunikaty przy uruchamianiu.
Ten opis oznacza, że GIMP w konsoli będzie wypisywał co dokładnie robi, kiedy się uruchamia. To przydatna opcja, zwłaszcza, jak mamy problemy przy uruchamianiu. Teraz przynajmniej będzie można dowiedzieć się, przy czym owe wystepują.
--no-shm Nie wykorzystuje pamięci dzielonej pomiędzy programem GIMP a wtyczkami
--no-cpu-accel Nie wykorzystuje specjalnych instrukcji procesora przyśpieszających działanie
Te parametry mają znacznie głownie dla developerów, lub tych, którzy własnoręcznie kompilowali swojego GIMPa. W razie jakby mieli z nim jakieś problemy, mogą sobie sprawdzić, czy ich źródłem (problemów) nie są nietypowe mechanizmy w kodzie, lub optymalizacje jakie zapewnia dany sprzęt.
-d, --no-data Nie wczytuje pędzli, gradientów, palet, deseni.
-f, --no-fonts Nie ładuje żadnych czcionek.
Tutaj nie trzeba komentarza:)
-s, --no-splash Nie wyświetla okna startowego
Jeśli nie podoba Ci się obrazek startowy możesz go nie wyświetlać. Inna sprawa, że po uruchomieniu GIMPa przez chwilę "nie będzie nic się działo", tak naprawdę będa się ładowały czcionki, skrypty itp - czyli to pojawiało się nad paskiem postepu na splashscreenie.
-n, --new-instance Uruchamia nowy program GIMP
Normalnie kiedy otwieramy kolejne obrazki w GIMPie uruchamiane są one nowe okienka już uruchamianego okienka, ten parametr sprawia, że możesz uruchamiać osobne GIMPy.
-a, --as-new Otwiera obraz jako nowy
Nie to nie to co wyżej. To ustawienie sprawia, że wczytany obrazek jest traktowany jak nowy, czyli będzie wyświetlany jako "Bez nazwy", a przy wyjściu zostaniem zapytani o to czy zapisać zmiany i gdzie ich dokonać.
-i, --no-interface Uruchamia bez interfejsu użytkownika
Uruchaminie GIMPa, bez GIMPa - a przynajmniej jego widocznej dla użytkownika części. bardzo przydatne ustawienie, ale dopiero jak nauczymy się wywoływać skrypty.
--session=<name> Wykorzystuje alternatywny plik sessionrc
-g, --gimprc=<filename> Wykorzystuje alternatywny systemowy plik gimprc
--system-gimprc=<filename> Wykorzystuje alternatywny systemowy plik gimprc
Do czego służą te opcje to nie jako temat na inny tutorial.
--dump-gimprc Wypisuje plik gimprc z ustawieniami domyślnymi
Ten parametr przydaje się każdemu, kto przecholował z edycją pliku gimprc. Jak wyżej:)
-c, --console-messages Wyświetla ostrzeżenia w konsoli zamiast wyświetlać w oknie dialogowym.
Jeśli ktoś uważa komunikaty o błędach w wyskakujących okienkach za bardzo irytujące, to może użyć tego parametru. Ktoś inny może go użyć, by móc przekleić treść komunikatów z konsoli np.: na forum.
--stack-trace-mode=<mode> Debuguje w przypadku nieoczekiwanego zamknięcia programu (never|query|always)
Kolejna opcja dla nieco bardziej obeznanych w GIMPie, zwłaszcza od strony kodu programu.
--g-fatal-warnings Traktuje wszystkie ostrzeżenia poważnie
Coś dla pefekcjonistów; powoduje, że program traktuje ostrzeżenia jako błędy.
--display=EKRAN Wykorzysywany ekran X
Jeśli nie wiesz z opisu o co chodzi, to znaczy, że nie potrzebujesz tego paramteru.
--pdb-compat-mode=<mode> Tryb kompatybilności PDB (off|on|warn)
;; Przykład skryptu uruchamianego w trybie wsadowym.
;; Można rozwijać i wykorzystywać bez ograniczeń.
;;
;; Public Domain. No Copyright.
;;
(define (nazwa-skryptu
filename ; nazwa pliku z obrazkiem
)
(let* (
; Otwarcie obrazka z podanego linku
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
; Pobranie id warstwy na której będziemy pracować
; (w przypadku png, czy jpg, mamy do czynienia z jedną)
(drawable (car (gimp-image-get-active-layer image)))
)
; Tu można wstawiać instrukcje do swojego skryptu
;
; Zapis obrazka
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
; Usunięcie pozostałości w pamięci
(gimp-image-delete image)
))
# jak widać temat nie umarł, pomimo, że piszę już go rok:P
(Zen tutorial jest w fazie powstawania)
Zacznijmy od tego, że jest kilka (kilka...

) systemów operycjnych... ja jednak znam 2 na tyle dobrze, żeby o nich pisać.
Są to: Linux ogólnie pojęty i niestety - Windows.
Zaczniemy wiec od uruchominia konsoli:)
W Linuksie zwykle nie ma z tym problemu, zapytajcie mamy jak nie wiecie.
W Windowsie, no cóż, autorzy wyrażnie traktują ją jak zło konieczne... MenuStart->Uruchom i wpisz "cmd" <enter>
Teraz uruchomimy GIMPa z konsoli
W Linuksie: wpisujemy gimp i wciskamy enter
W Windowie: zaczynają się schody...
C:\>gimp
Nazwa 'gimp' nie jest rozpoznawana jako polecenie wewnętrzne lub zewnętrzne,
program wykonywalny lub plik wsadowy.
Trzeba temu oczywiście zaradzić, możliwości jest na szczęście kilka:
1) zamiast "gimp" podawać pełną ścieżkę do gimpa - zwykle to jest:
c:\Program Files\GIMP-2.0\bin\gimp-2.2.exe
(oczywiście dla wersji 2.2)
Tutaj uwaga - konsola w Windowsie to nie bash - będą problemy ze spacjami w nazwach folderów.
Można im zaradzić stosując nawiasy (")
"C:\Program Files\GIMP-2.0\bin\gimp-2.2.exe"
Powinien się uruchomić GIMP - niestety być może stwierdzi on, że brakuje mu jakiś bibliotek...
2) zmiana zmiana zmiennych środowiskowych.
Wpisz w konsoli PATH, wypiszą się ścieżki pod jakimi Windows szuka w śród nazwa programów i skryptów które się w nich znajdują tego co właśnie wpisałeś do konsoli.
Przykład:
C:\>PATH
PATH=C:\Python24\.;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Common Files\GTK\2.0\bin
Dodajmy wiec ścieżkę do GIMPa do tej zmiennej:
C:\>set PATH=%PATH%;"C:\Program Files\GIMP-2.0\bin"
C:\>PATH
PATH=C:\Python24\.;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Common Files\GTK\2.0\bin;"C:\Program Files\GIMP-2.0\bin"
Krótkie wyjaśnienie:
SET - to komenda modyfikująca czy dodająca zmienne powłoki. W jej pierwszym parametrze wstawiamy nazwę zmiennej, potem znak równości (=), a potem, to co przypisujemy do owej zmiennej. A jeszcze jedno - tam nie ma spacji miedzy nazwą zmiennej a znakiem równości i nowej wartości zmiennej.
Czemu jest
PATH=%PATH%? Ano, dzięki temu dopisujemy do zmiennej PATH, zamiast ją zastępować. Te znaki procentu otaczające nazwę zmienną informują powłokę, że w to miejsce ma zostać zastąpione przez zawartość zmiennej, bez tych procentów byłby to ciąg znaczków "PATH".
I jeszcze jedno - jeśli teraz wyłączysz konsolę, włączysz ponownie i wpiszesz PATH nie zobaczysz tej ścieżki którą wprowadziliśmy wspólnymi siłami. Oczywiście można ją wstawić na stałe, ale o tym później, ja tu wskazuje na co innego: jak się pomylisz, to nic wielkiego się nie stanie - po prostu zrestartujesz konsolę.
Użycie: gimp [opcja ...] [plik ...]
Opcje:
-h, --help Wypisuje tę pomoc.
-v, --version Wypisuje informację o wersji.
--verbose Wyświetla komunikaty przy uruchamianiu.
--no-shm Nie wykorzystuje pamięci dzielonej pomiędzy programem GIMP a wtyczkami.
--no-cpu-accel Nie wykorzystuje specjalnych instrukcji procesora przyśpieszających działanie.
-d, --no-data Nie wczytuje pędzli, gradientów, palet, deseni.
-f, --no-fonts Nie ładuje żadnych czcionek.
-i, --no-interface Uruchamia bez interfejsu użytkownika.
--display <display> Wykorzystuje podany ekran X.
-s, --no-splash Nie wyświetla okna startowego.
--session <nazwa> Wykorzystuje alternatywny plik sessionrc.
-g --gimprc <gimprc> Wykorzystuje alternatywny plik konfiguracji gimprc.
--system-gimprc <gimprc> Wykorzystuje alternatywny systemowy plik gimprc.
--dump-gimprc Wypisuje plik gimprc z ustawieniami domyślnymi.
-c, --console-messages Wypisuje ostrzeżenia na konsolę zamiast wyświetlania w oknie dialogowym.
--debug-handlers Aktywuje obsługę analizowania błędów przy mniej groźnych sygnałach.
--stack-trace-mode <never | query | always>
Wyświetlenie stosu wywołań funkcji po otrzymaniu poważnego sygnału (nigdy | pytanie |zawsze).
--pdb-compat-mode <off | on | warn>
Tryb zgodności bazy danych procedur (wyłączony | włączony | ostrzeżenia).
--batch-interpreter <procedura>
Procedura użyta do przetworzenia poleceń wsadowych.
-b, --batch <polecenia> Wykonuje polecenia w trybie wsadowym.
http://www.goof.com/pcg/marc/pdb/index.html