Kapitel 12. Skriptning

Innehållsförteckning

1. Insticksmoduler
1.1. Introduktion
1.2. Använda insticksmoduler
1.3. Installera nya instick
1.4. Skriva instick
2. Använda Script-Fu-skript
2.1. Script-Fu?
2.2. Installera Script-Fus
2.3. Så gör man och så gör man inte.
2.4. Olika sorters Script-Fus
2.5. Fristående skript
2.6. Bildberoende skript
3. A Script-Fu Tutorial
3.1. Getting Acquainted With Scheme
3.2. Variables And Functions
3.3. Lists, Lists And More Lists
3.4. Ditt första Script-Fu-skript
3.5. Giving Our Script Some Guts
3.6. Extending The Text Box Script
3.7. Ditt skript och hur det fungerar

1. Insticksmoduler

1.1. Introduktion

Ett av det trevligaste med GIMP är hur lätt man kan utöka dess funktionalitet genom att använda insticksprogram GIMP-instick är externa program som körs under GIMPhuvudprograms kontroll och interagerar mycket nära med det. Insticksprogram kan manipulera bilder på nästan alla sätt som en användare. Deras fördel är att det är mycket lättare att lägga till en egenskap till GIMP genom att skriva ett litet insticksprogram än skriva om enorma mängden komplex kod om utgör kärnan i GIMP. Många betydande insticksprogram har en källkkod skrivet i C som endast innehåller runt 100-200 rader.

Dussintals insticksprogram är inkluderade i GIMP:s grunddistribution och är installerade automatiskt med GIMP. De flesta av dem kan man komma åt genom Filter-menyn (Faktum är att allt du hittar där är insticksprogram) men ett antal andra hittar man i andra menyer. I många fall kan använda en utan att ha en aning om att det är ett insticksprogram: Till exempel, "Normalisera"-funktionen för automatisk färgkorrigering är faktiskt en ett instickprogram fast det är inget i sättet det fungerar som säger dig det.

In addition to the plugins included with GIMP , many more are available on the net. A large number can be found at the GIMP Plugin Registry [GIMP-REGISTRY], a web site whose purpose is to provide a central repository for plugins. Creators of plugins can upload them there; users in search of plugins for a specific purpose can search the site in a variety of ways.

Vem som helst i världen kan skriva ett insticksprogram för GIMP och göra den tillgänglig över webben, antingen genom förrådet eller på sin personliga webbsajt; många väldigt matnyttiga instick kan hämtas på detta sätt, vilket beskrivs på ett annat ställe i användarmanualen. Med denna frihet från begränsningar följer dock vissa risker: det faktum att vem som helst kan göra det, innebär att det inte finns någon effektiv kvalitets- kontroll. Alla instick som levereras med GIMPhar testats och finjusterats av utvecklarna men m

[Varning] Varning

Instick är fullfjädrade körbara program kan göra allt som andra program gör, inklusive att installera back-doors i ditt system eller på nåt annat äventyra dess säkerhet. Installera inte ett instick såvida det det inte kommer från en pålitlig källa.

Dessa varningar kan gälla i lika grad för insticksförrådet ( Plugin Registry) som för andra källor för insticksprogram. förrådet är öppet för alla insticksprogrammakare som vill använda den: det finns ingen systematisk översikt i den. Naturligtvis skulle administratörerna ta bort det som är elakt i den stund de får kännedom om det. ( Det har inte hänt ännu.) Det äremellertid samma garanti för GIMP och dess insticksprogram som vilken annan fri mjukvara, nämligen ingen.

[Observera] Observera

Instick har varit en tillgång i GIMP i många version. Emellertid används sällan ett ett instick, som skrivits i en version av GIMP, med framgång i andra versioner. De måste portas: Ibland är lätt, ibland inte. Många instick finns redan tillgängliga för flera versioner. För att summera: Innan du försöker installer ett instick se till att den är skriven för din version av GIMP.

1.2. Använda insticksmoduler

För det mesta kan du använda ett instick vilket GIMP-verktyg som helst utan behöva känna till att det är ett insticksprogram. Men det finns några saker om instick som kan vara bra att känna till.

Det ena är att insticksprogram är i allmänhet lika robusta som själva GIMP-kärnan. När GIMP kraschar anses det vara en allvarlig sak: det kan orsaka en hel problem och huvudvärk för användare. Men när ett instick kraschar är följderna naturligt inte lika allvarliga. I de flesta fall kan man arbeta vidare utan att oroa sig för det.

[Notera] Notera

På grund av att instick är separata program kommunicerar de med GIMP-kärnan på ett speciellt sätt: GIMP-utvecklarna kallar detta talking over a wire. När ett instick kraschar, bryts kommunikation och du kommer se ett felmeddelande om ett wire read error.

[Tips] Tips

När ett instick kraschar, ger GIMP dig illavarslande budskap som talar om för dig att insticket lämnat GIMP i ett korrupt tillstånd och att du borde överväga att spara dina bilder och avsluta. Helt strikt så är detta helt korrekt, då plugins har förmåga att ändra nästan allt i GIMP, men i praktiken har erfarenheten visat att denna korruption är väldigt sällsynt och de flesta användare kan fortsätta med sitt arbete utan oroa sig för det. Vårt råd är att fundera på hur mycket problem det kan ställa till och väga det mot oddsen.

På grund av det sätt som instick kommunicerar med GIMP, har de ingen mekanism som ger information om ändringar du gör i efter att ett insticksprogram har startats. Om du kör igång ett insticksedan ändrar i en bild genom att använda i ett annat verktyg, kommer insticket att krascha ofta, och när den inte gör det kommer den att ge ett oriktig resultat. Du skall undvika att köra mer än ett instick i taget för en bild och undvika att göra något på bilden tills insticket avslutat sin körning på den. Om du bortser från detta råd kommer du att att få även få ångringssystem att balla ur så att du inte ens kan rädda dig ur din dårskap.

1.3. Installera nya instick

De instick som är distribuerade med GIMP kräver inte nån speciell installation. Insticksom du laddat ner, kräver det. Det finns ett flertal scenarier, beroende på vilken OS du använderoch hur insticket är strukturerat. Det brukar vara ganska enkelt attinstallerat ett nytt instick i Linux; I Window är det antingen enkelteller mycket svårt. I vilket fall är det bäst att avhandla dessa två separat.

1.3.1. Linux / Unix-sytem like systems

Det flesta instick faller in under två kategorier: de mindre som distribueras men en enda .c-fil och de större vars källkod är distribuerad i en mapp som innehåller flera filer inkluderat en Makefile.

För en enfils instick, låt oss kalla det borker.c, handlar installationen bara om att köra kommandot gimptool-2.0 --install borker.c. Detta kommando kompilerar insticksprogrammet och installerar det in din personliga instickskatalog, ~/gimp-2.4/plugins såvida du inte har ändrat det. Det gör att den laddas nästa gång du startar GIMP. Du behöver inte vara root för att göra detta, egentligen borde du inte vara det. Om insticket misslyckas att kompileras, var lite kreativ..

När du väl installerat insticket, hur aktiverar men den? Sökvägen till menyn bestäms av själva insticksprogrammet, så svaret är att du måste antingen se dokumentationen för insticksprogrammet ( om det finns ) eller köra igång Bläddrare för insticksmoduler(från Xtns/Insticksdetaljer)och sök efter insticket efter dess namn och leta efter Trädvy-fliken om du ändå inte hittar kan slutligen utforska menyerna eller se i källkoden i registeravsnittet - det du tycker är enklast.

För mer komplicerade instick som är organiserade i en katalog med fler filer borde där finnas en fil i denna katalog som kallas antingen INSTALL eller README med instruktioner. Om inte, så är det bäst att slänga insticket i papperskorgen ochägna tid åt nåt annat: en kod som skrivet med så lite omsorg för användaren kommer förmodligen vara frustrerande på många sätt.

Vissa instick ( speciellt de som baseras på GIMP Instickskatalog) är utformade att installeras på GIMP:s huvudsystems katalog, snarare än i din hemmamapp. För dessa måste du vara root för att genomföra det sista steget i installationen (när du postar make installkommandot.

Om installerar i din personliga instickskatalog ett instick som har samma namn som en i systemets instickskatalog, endast ett kan laddas och det är den i din hemmamapp. Du får meddelanden om detta varje gång du startar GIMP. Det är en situation som är bäst att undvka.

1.3.2. Windows

Windows är mycket mer problematisk miljö att bygga mjukvara i än Linux. Alla anständiga Linuxdistributioner är fullt utrustade med verktyg för att mjukvarukompilering och alla fungerar på nästan likadant men Windows har inga sådana verktyg. Det finns möjlighet att ställa in en bra miljö att bygga mjukvara i, men det kräver antingen en avsevärd summa i pengar eller en avsevärd arbetsinsats och mycket kunskap.

Vad det betyder relaterat till GIMPinstick är följande: antingen har du en miljö vari du kan bygga mjukvara eller inte. Om du inte har det, så kan du bara hoppas på att du hittar en förkompilerad version av insticksprogrammet nånstans ( eller att övertala någon att kompilera den för dig), så att du kan enbart kan lägga den i din personliga instickskatalog. Om du har en miljö vari du kan bygga mjukvara ( vilket betyder här en miljö i vilken du kan bygga GIMP) då vet du säkert lite grann om detta och behöver bara följa anvisningarna i Linux.

Om du skulle vilja sätta upp en miljö för att bygga mjukvara och är redo för det hjältemod som krävs, kan du hitta en hyfsat aktuell hur att gå tillväga med det i GIMP-Wikin i HowToCompileGimp/MicrosoftWindows [GIMP-WIKI-MS]. Eftersom det är en Wiki, får alla redigera i den, så håll den gärna uppdaterad med tips och utifrån dina egna erfarenheter.

1.3.3. Apple Mac OS X

How you install plugins on OS X mostly depends on how you installed GIMP itself. If you were one of the brave and installed GIMP through one of the package managers like fink [DARWINORTS] or darwinports, [FINK] the plugin installation works exactly the way it is described for the Linux platform already. The only difference is, that a couple of plugins might be even available in the repository of you package manager, so give it a try.

If you on the other hand are one of the Users that preferred to grab a prebuild GIMP package like GIMP.app, you most probably want to stick to that prebuild stuff. So you can try to get a prebuild version of the plugin of you dreams from the author of the plugin, but I'd not want to bet on this. Building your own binaries unfortunately involves installing GIMP through one of the package managers mentioned above.

1.4. Skriva instick

Om du vill lära dig att skriva en ett instick, hittar du gott om hjälp på GIMPUtvecklarnas webbsajt [GIMP-DEV-PLUGIN]. GIMP är ett ett komplext program, men utvecklarlaget har gjort stora ansträngningar för att sänka inlärningströskeln för skrivning av instick: det finns bra instruktioner och exempel och huvudbiblioteket som instick använder som gränssnitt till GIMP(som kallas libgimp) har en väldokumenterad API. Bra programmerare, som lär sig genom att modifiera befintliga instick Kan ofta åstadkomma intressa saker efter bara ett par dagars arbete.