Určitě jste často proklínali GIMP, že neobsahuje možnost dávkově zpracovat množinu obrázků pomocí jednoduchého klikátka, kde by si člověk jednoduše vybral, které pluginy a v jakém pořadí chce na obrázek aplikovat.
Po frustrujícím hledání jste, nejspíše stejně jako já, zjistili, že existuje něco jako script-fu a python-fu a přepínač -b v konzolovém režimu GIMPu.
Ti odvážnější z vás se ještě určitě podívali na demonstrační příklady k tomuto dávkovému režimu a k jazyku script-fu a se zděšením zjistili :-) , že scrip-fu jako by z oka vypadl lispu.
V následujícím textu popíšu jak v tomto jazyce udělat jednoduché dávkové zpracování. Zde si dovolím malou odbočku, tento text nepíšu abych obohatil studnici poznání českého internetu, nýbrž jsem veden vlastní bolestnou zkušeností, která mě jasně říká, že tyto nabyté informace zapomenu nejpozději po dopsání následujícího textu.
Dávkový režim GIMPu
Dávkový režim GIMPu funguje velice jednoduše a vyvolává se přepínačem -b a jako argument přijímá řetězec uvozený do uvozovek s příkazy GIMPu. Pro dávkové zpracování je ještě vhodné gimp spustit s přepínačem -i, jenž způsobí, že se vám nezobrazí GUI. Popřípadě můžete použít ještě přepínače -d (nenačtou se přechody, vzory atd.. ) a -f (nebudou se načítat fonty).
Definice funkce
V našem příkladě budeme konstruovat funkci, která ze všech vstupních obrázků udělá obrázky bezešvé (seamless – obrázky které navazují samy na sebe a dají se proto použít jako textury).
Nazveme ji třeba seamless-batch a bude přijímat pouze jeden parametr a to specifikaci vstupních souborů klasickým regulárním výrazem (např. /home/user/textures/*.jpg).
Definice funkce probíhá pomocí příkazu define a jako parametr příjímá seznam, kde na první pozici je jméno funkce a dalšími prvky seznamu jsou parametry funkce.
Takže v našem případě to bude (define (seamless-batch pattern))
Samotný obsah skriptu podrobněji popisovat nebudu, raději uvedu komentovaný příklad.
Výsledný skript
Následující script pojmenujeme seamless-batch.scm
a nakopírujeme do ~/.gimp/script/
1 ;funkce vytvari bezsve obrazky
2 ;param pattern je specifikace vstupnich souboru napr. /home/user/img-data/*.png
3 (define (seamless-batch pattern)
4 ;vyber souboru dle zadaneho patternu
5 (let* ((filelist (cadr (file-glob pattern 1))))
6 ;iterace nad vsemi soubory
7 (while (not (null? filelist))(
8 ;nastaveni promenych filename, image a drawable
9 let* (
10 ;nacteni nazvu souboru ze seznamu
11 (filename (car filelist))
12 ;nacteni obrazku do GIMPU
13 (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
14 ;ziskani drawable z obrazku
15 (drawable (car (gimp-image-get-active-layer image)))
16 )
17 ;vykonani prvniho pluginu
18 (plug-in-make-seamless RUN-NONINTERACTIVE image drawable )
19 ;ulozeni zpet do souboru
20 (gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
21 (gimp-image-delete image)
22 )
23 ;odmazani prvni polozky ze seznamu
24 (set! filelist (cdr filelist))
25 )
26 )
27)
Jistě vám není jasné jak získat seznam funkcí a jejich parametrů. Lze ho získat jednoduše skrze python-fu consoli Filtry->python-fu->Console->Browse.
Volání z konzole
Mno a na konec nám jen zbývá skript spustit z konzole.
gimp -i -b '(seamless-batch "*.ppm")' -b '(gimp-quit 0)'
A to je konec přátelé.
2: 3: a muzete si v imagemagick napsat vlastni skripty pro rizeni aplikace pluginu na obrazky? (no offense, ja to nevim, proto se ptam) A muzete si pripadne vubec psat (relativne snadno) vlastni pluginy pro praci s obrazky, kde uz muzete vyuzit sirokou codebase v GIMPu?
spíše nechápu, proč gimp nemá nahrávání maker, když umí být skriptovatelný
dále na dávkové zpracování používám PHatch http://photobatch.stani.be/
Použijte "DBP (David's Batch Processor)"
popis např. zde: http://members.ozemail.com.au/~hodsond/dbp.html
Umí rename, resize, sharpen, blur, crop, resize, ukládání ve zvoleném formátu...
Pro 90% z Vás bude postačovat.
Po instalaci ho najdete zde: Filtry->batch ... (nemám po ruce nyní gimp :-( )
trochu sa teraz hram s 3D obrazkami a potreboval by som nieco taketo:
mam 2 subory lavy.jpg a pravy.jpg najskor ich oba "zosediviem" (aby boli ciernobiele) a potom by som rad vytvoril treti ktory bude spojenim tych dvoch pricom z prveho sa vezme iba red zlozka, z druheho blue, green bude mat kazdy pixel 0 tym vznikne "3D" obrazok ktory sa pri pohlade cez "3D okuliare" (cervena folia na lavom oku a modra na pravom) bude javit akoby bol v priestore... :)
P.S. fotim 2x tu istu scenu s fotakom posunutym o 6 cm - to keby chcel niekto vyskusat :)
11: Této technice se říká anaglyph. Tutorial na tvorbu anaglyphu pomocí gimpu http://graphicssoft.about.com/od/gimp/ht/3danaglyph.-UkA.htm . IMHO si myslim ze idealnejsi reseni by bylo neprevadet obrazky do grayscale ale sloucit RG a GB kanály obou obrázků.
Autor by se charakterizoval jako velmi charismatický, inteligentní, elegantní mladý muž s citem pro společenský takt. Velmi oblíbený ve společnosti obzvláště pak pro svůj velmi jemný smysl pro humor. Nicméně s ním nikdo toto přesvědčení nesdílí (svině jedny).