Kapitola 13. Skriptovanie

1.  Zásuvné moduly

1.1. Úvod

Príjemnou vlastnosťou GIMPu je, že pomocou zásuvných modulov môžete ľahko rozšíriť jeho funkcionalitu. Zásuvné moduly GIMPu predstavujú externé programy, ktoré bežia pod kontrolou hlavného programu a úzko s ním spolupracujú. Zásuvné moduly dokážu s obrázkami pracovať prakticky neobmedzeným spôsobom. Výhodou zásuvných modulov je možnosť pridať ich ku GIMPu bez nutnosti prepisovať obrovské množstvo kódu, ktorý tvorí jadro GIMPu. Mnohé hodnotné zásuvné moduly sú založené na zdrojovom kóde C, ktorý obsahuje iba okolo 100-200 riadkov.

Niekoľko desiatok zásuvných modulov je už v GIMPe nainštalovaných a dostanete ich automaticky s každou inštaláciou GIMPu. Väčšinu z nich nájdete v hlavnej ponuke pod položkou Filters (Filtre) (v skutočnosti všetko, čo v tejto ponuke nájdete sú zásuvné moduly). Niektoré sú však umiestnené aj v iných ponukách. Vo väčšine prípadov ani nepostrehnete, že používate zásuvný modul. Napríklad funkcia pre automatickú korekciu farieb „Normalize (Normalizovať)“ je v skutočnosti zásuvný modul, hoci sa o tom nikde nedozviete.

Okrem zásuvných modulov nainštalovaných v GIMPe mnohé ďalšie nájdete na internete. Množstvo zásuvných modulov môžete nájsť v Registri zásuvných modulov GIMPu [GIMP-REGISTRY]. Táto webová stránka má za úlohu zhromažďovať zásuvné moduly na jednom mieste. Tvorcovia zásuvných modulov sem môžu načítať svoje výtvory. Tí čo hľadajú, nájdu na tomto mieste rôzne zásuvné moduly podľa svojho účelu.

Zásuvný modul pre GIMP môže napísať hocikto a sprístupniť ho ostatným, či už prostredníctvom registra alebo vlastnej webovej stránky. Týmto spôsobom sa môžete dostať k veľmi hodnotným zásuvným modulom. Niektoré z nich sú popísané na inom mieste v tomto manuále. Sloboda bez obmedzení však prináša aj určité riziko. Riziko spočíva v tom, že nové skripty môže robiť každý, no neexistuje pritom efektívna kontrola kvality. Všetky skripty dodávané v inštalácii GIMPu boli vývojármi otestované a vyladené. Avšak mnohé skripty stiahnuté z internetu boli vytvorené v priebehu niekoľkých hodín a vrhnuté do sveta. Niektorí vývojári zásuvných modulov sa príliš nestarajú o stabilitu svojich výtvorov. A hoci niektorí by sa aj starali, nemajú také možnosti aby ich otestovali na rôznych systémoch a v rôznych situáciách. Takže niekedy, keď si stiahnete nový zásuvný modul zadarmo, dostanete to, za čo ste si „zaplatili“. Tým vás nechceme odradiť, len poukázať na skutočnosť.

Upozornenie Upozornenie

Zásuvné moduly sú plne funkčné programy, ktoré dokážu rôzne veci, dokonca aj otvoriť do systému zadné dvierka, alebo inak ohroziť jeho bezpečnosť. Ak neveríte zdroju, zásuvné moduly neinštalujte.

Toto varovanie platí ako pre Register zásuvných modulov, tak aj pre ostatné zdroje. Register je otvorený pre všetkých vývojárov zásuvných modulov. Nad registrom pritom neexistuje žiadny systematický dozor. Ak administrátori registra zistia škodlivý zásuvný modul, obyčajne ho odstránia. (Ale zatiaľ sa to nestalo.) Na GIMP, ako aj jeho zásuvné moduly, sa vzťahuje taká istá záruka, ako na každý iný slobodný softvér: teda žiadna.

Upozornenie Upozornenie

Zásuvné moduly boli programované pre viaceré verzie GIMPu. V praxi to znamená, že zásuvné moduly pre jednu verziu GIMPu môžu byť sotva použiteľné v inej verzii. Preto musia byť prepracované. Niekedy je to jednoduché, inokedy menej. Mnohé zásuvné moduly sú dostupné v niekoľkých verziách. Horšia správa: pred samotnou inštaláciou zásuvného modulu si najprv skontrolujte, či ten ktorý skript je určený pre vašu verziu GIMPu.

1.2.  Používanie zásuvných modulov

Väčšinu zásuvných modulov môžete používať rovnako ako každý iný nástroj GIMPu. Dokonca bez toho, aby ste vôbec tušili, že je to zásuvný modul. Sú tu však niektoré aspekty zásuvných modulov o ktorých by ste mali vedieť.

Jedným z nich je stabilita. Zásuvné moduly vo všeobecnosti nie sú tak stabilné, ako je stabilné jadro GIMPu. Ak GIMP padne, je to veľmi závažná vec. Pre používateľa to znamená pár problémov navyše a nejaký ten hlavybôľ. Ak však padne zásuvný modul, väčšinou to nemá až také negatívne dôsledky. Vo väčšine prípadov môžete kľudne pokračovať v práci.

[Note] Poznámka

Keďže zásuvné moduly predstavujú samostatné programy, s jadrom GIMPu komunikujú špeciálnym spôsobom. Vývojári GIMPu túto komunikáciu nazývajú komunikácia po drôte (talking over a wire). Pri páde zásuvného modulu sa táto komunikácia preruší. Zobrazí sa pri tom chybová hláška wire read error.

Tip Tip

GIMP pri páde zásuvného modulu zobrazí veľmi čudnú hlášku o tom, že zásuvný modul uviedol GIMP do poškodeného stavu a mali by ste zvážiť uloženie obrázkov a ukončenie programu. Prísne vzaté, je to celkom pravdivá hláška. Zásuvný modul má totiž schopnosť v GIMPe poškodiť takmer všetko. Z praktického hľadiska však k tomu dochádza len veľmi zriedka. Dokázali to skúsenosti mnohých používateľov, ktorí pri takejto udalosti pokračujú v práci bez prerušenia a hlášku jednoducho ignorujú. Naša rada znie: Je dobré myslieť na to, koľko problémov si v tomto prípade môžete vyrobiť. Ak sa niečo pokazí zvážte, či pokračovaním v práci viac získate, alebo stratíte.

Na základe toho, akým spôsobom GIMP komunikuje so zásuvnými modulmi, program nemôže informovať o zmenách, ktoré ste v obrázku urobili po spustení zásuvného modulu. Ak po spustení zásuvného modulu súčasne použijete nejaký iný nástroj, zásuvný modul obyčajne padne. Spúšťaniu viacerých zásuvných modulov v jednom čase by ste sa preto mali vyvarovať. Taktiež by ste počas behu zásuvného modulu nemali do obrázka zasahovať iným spôsobom, kým sa jeho beh neskončí. Ak budete túto radu ignorovať, pravdepodobne na svoju nerozumnosť doplatíte stratou schopnosti vrátiť späť vykonané zmeny. A čo je horšie, systém nebude schopný spamätať sa.

1.3.  Inštalácia nových zásuvných modulov

Zásuvné moduly dodávané spolu s GIMPom si nevyžadujú žiadnu špeciálnu inštaláciu. Zásuvné moduly, ktoré si stiahnete z internetu, inštaláciu vyžadujú. Existuje niekoľko scenárov inštalácie. Tie sú závislé od operačného systému a štruktúry zásuvného modulu. Na Linuxe je inštalácia veľmi jednoduchá, vo Windowse to môže byť ľahké, ale aj veľmi ťažké. V každom prípade bude treba inštalácie pre oba systémy vysvetliť osobitne.

1.3.1. Linux / Unix-sytem like systems

Väčšina zásuvných modulov spadá do dvoch kategórií: malé, ktoré sú distribuované ako jednoduchý .c súbor; a väčšie, ktorých kód je distribuovaný ako adresár rozdelený do viacerých súborov vrátane súboru Makefile.

Inštalácia jednoduchého zásuvného modulu, nazývaného borker.c, sa obmedzuje na jednoduchý príkaz gimptool-2.0 --install borker.c. Týmto príkazom sa zásuvný modul skompiluje a inštaluje do vášho osobného adresára ~/gimp-2.4/plugins. Tu sa inštalujú všetky zásuvné moduly, samozrejme, ak ste to nezmenili. Pri ďalšom spustení GIMPu sa zásuvný modul automaticky načíta. Nemusíte byť administrátor aby ste zásuvné moduly mohli inštalovať, v skutočnosti by ste ním nemali byť. Ak sa kompilácia zásuvného modulu nevydarí, musíte zapnúť svoju kreativitu.

Ako zásuvný modul po inštalácii aktivovať? Cesta ponuky je určená samotným zásuvným modulom. Takže na túto otázku musíte hľadať odpoveď v samotnej dokumentácii zásuvného modulu (ak nejaká existuje). Taktiež môžete spustiť dialóg Plugin Description (z Xtns/Plugins Details), zásuvný modul vyhľadať podľa mena a prezrieť zoznam. Ak vaše hľadanie nie je úspešné, prezrite ponuku a zdrojové kódy v Registri. Vyberte si, čo je pre vás jednoduchšie.

Zložitejšie zásuvné moduly, organizované do adresárov s mnohými súbormi by mali obsahovať súbor pomenovaný napr. ako INSTALL alebo README. Tu by ste mali nájsť všetky potrebné informácie o inštalácii. Ak ani táto možnosť nepomohla, vyhoďte taký zásuvný modul do koša. Radšej svoj čas strávte užitočnejšie. Ak kód neprihliada na používateľa už na začiatku, určite bude aj jeho ďalšie použitie frustrujúce.

Niektoré zásuvné moduly (najmä tie, ktoré vychádzajú z templátov GIMPu) sú programované tak, aby sa inštalovali do hlavného systémového adresára GIMPu. Nie do vášho osobného adresára. V týchto prípadoch budete musieť byť pri inštalácii prihlásený ako root (ak použijete príkaz make install).

Ak do osobného adresára zásuvných modulov nainštalujete modul s rovnakým názvom, aký sa už nachádza v systémovom adresári pre zásuvné moduly, spustí sa iba jeden. Načíta sa ten, ktorý sa nachádza v osobnom adresári. V tomto prípade sa vždy pri štarte GIMPu zobrazí informácia, ktorá vás o tom informuje. Najlepšie sa je takejto situácii vyhnúť.

1.3.2. Windows

Windows je pre tvorbu softvéru oveľa problematickejšie prostredie ako Linux. Každá poriadna distribúcia Linuxu je dodávaná s kompletnou sadou nástrojov na kompiláciu softvéru, ktorá je v podstate podobná pre každú distribúciu. Windows tieto nástroje neobsahuje. Samozrejme, že môžete získať dobré prostredie pre tvorbu softvéru, ale bude si to vyžadovať dostatočný obnos financií, prípadne mnoho úsilia a vedomostí.

Čo to znamená v súvislosti so zásuvnými modulmi pre GIMP? Buď máte prostredie, v ktorom sa zásuvné moduly dajú tvoriť, alebo nie. Ak nemáte, potom bude najlepšie, keď niekde nájdete prekompilovanú verziu zásuvných modulov (alebo vám s tým niekto pomôže). Túto verziu jednoducho načítate do vášho osobného adresára zásuvných modulov. Ak takéto prostredie máte (t. j. prostredie, v ktorom GIMP môžete vyvíjať), niet pochýb, že o tejto problematike viete dosť. Stačí už len postupovať podľa inštrukcií pre Linux.

1.3.3. Apple Mac OS X

To, ako budete inštalovať zásuvné moduly na OS X závisí najmä od toho, ako ste inštalovali samotný GIMP. Ak ste boli jeden z odvážnych a GIMP ste inštalovali prostredníctvom niektorého z balíkových správcov ako sú fink [DARWINORTS] alebo darwinports, [FINK], inštalácia zásuvných modulov prebieha presne tak isto, ako je to popísané pre Linux. Jediný rozdiel môže byť v tom, že niektoré zásuvné moduly už môžu byť súčasťou balíkového správcu. Treba to skontrolovať.

Ak ste ale jedným z používateľov, ktorí si stiahli predinštalovaný balík GIMPu ako napr. GIMP.app, pravdepodobne budete chcieť pri ňom ostať. Môžete skúsiť zohnať predinštalovanú verziu zásuvného modulu od jeho autora. Ale netreba sa na to spoliehať. Tvorba vašich vlastných binárnych kódov žiaľ zahŕňa inštaláciu GIMPu za pomoci niektorého z vyššie spomínaných balíkových správcov.

1.4.  Programovanie zásuvných modulov

Ak sa chcete naučiť písať vlastné zásuvné moduly, pomoc získate na vývojárskej webovej stránke GIMPu [GIMP-DEV-PLUGIN]. GIMP je zložitý program, ale vývojári sa snažili, aby vám učenie tvorby zásuvných modulov maximálne uľahčili. Existujú návody a príklady, a tiež knižnica zásuvných modulov pre GIMP (nazývaná libgimp) API. Dobrí programátori dokážu úpravou existujúcich zásuvných modulov vytvoriť zaujímave veci už po pár dňoch práce.