## Hoofdstuk 13. Scripten en plug-ins schrijven

## 1. Plug-ins

### 1.1. Inleiding

Een van de meest leuke dingen van GIMP is hoe gemakkelijk zijn functionaliteit kan worden uitgebreid, met plug-ins. GIMP plug-ins zijn externe programma's die worden uitgevoerd onder het beheer van de hoofdtoepassing GIMP en er heel nauw mee interacteren. Plug-ins kunnen afbeeldingen bewerken op bijna alle manieren waarop gebruikers dat kunnen. Hun voordeel is dat het veel gemakkelijker is om een mogelijkheid toe te voegen aan GIMP door een kleine plug-in te schrijven, dan door de grote massa complexe code aan te passen die de bron van GIMP vormt. Veel waardevolle plug-ins hebben C-broncode die slechts 100-200 regels of zo omvat.

Verscheidene dozijnen plug-ins zijn opgenomen in de hoofddistributie van GIMP en samen met GIMP automatisch geïnstalleerd. De meeste van hen kunnen worden bereikt via het menu Filters (in feite is alles in dat menu een plug-in), maar een aantal zijn in andere menu's geplaatst. In veel gevallen kunt u er een gebruiken zonder dat u zich realiseert dat het een plug-in is: bijvoorbeeld de functie "Normaliseren" voor automatische kleurcorrectie is feitelijk een plug-in, hoewel er niets is in de manier waarop het werkt dat u dit zou kunnen vertellen. Zelfs importeren en exporteren van afbeeldingen wordt gedaan met plug-ins.

Iedereen mag een plug-in voor GIMP schrijven en die online beschikbaar maken. Er zijn heel veel nuttige plug-ins die op die manier kunnen worden verkregen. Sommige van hen worden elders in de Gebruikershandleiding besproken.

Met deze vrije beschikbaarheid komt een bepaalde mate van risico. Het feit dat iedereen plug-ins kan uitgeven betekent dat er geen effectieve kwaliteitscontrole is. De plug-ins die worden gedistribueerd met GIMP zijn allemaal getest en fijn afgestemd door de ontwikkelaars. Aanvullende plug-ins, beschikbaar online, zouden in een paar uurtjes in elkaar gehackt kunnen zijn en daarna opgegeven. Sommige makers van plug-ins geven niets om robuustheid en zelfs voor hen die dat wel doen, hun mogelijkheid om te testen op een variëteit aan systemen, in een variëteit aan situaties, is vaak heel beperkt. In de basis, als u een plug-in download, krijgt u iets gratis en soms krijgt u precies waar u voor betaalt. Dit is niet om u te ontmoedigen, alleen om er zeker van te zijn dat u begrijpt dat niet alle plug-ins, die beschikbaar zijn online, dat zullen leveren wat u ervan verwacht.

| Waarschuwing
Plug-ins, wat volledig toegeruste uitvoerbare programma's zijn, kunnen alle dingen doen die andere programma's ook kunnen doen. Dat omvat het installeren van achterdeurtjes op uw systeem of op andere manieren de veiligheid ervan bedreigen. Installeer geen plug-in, tenzij die van een vertrouwde bron komt.

| Opmerking
GIMP 3.0 moest zijn API voor plug-ins op vele plaatsen wijzigen. Daarom moeten plug-ins, die zijn geschreven voor oudere versies, worden bijgewerkt en zullen zonder wijzigingen niet werken.

### 1.2. Plug-ins gebruiken

Voor het grootste deel kunt u een plug-in gebruiken, net als elk ander gereedschap van GIMP, zonder te weten dat het een plug-in is. Maar er zijn een aantal dingen over plug-ins die handig zijn om te begrijpen.

Een ervan is dat plug-ins over het algemeen niet zo robuust zijn als de bron van GIMP. Wanneer GIMP crasht, wordt dat beschouwd als een heel serieus ding: het kan de gebruiker veel problemen en hoofdpijn opleveren. Wanneer een plug-in crasht, zijn de consequenties gewoonlijk niet zo serieus. In de meeste gevallen kunt u gewon doorgaan met werken, zonder er teveel over na te denken.

| Opmerking
Omdat plug-ins afzonderlijke programma's zijn, communiceren ze met GIMP op een speciale manier: De ontwikkelaars van GIMP noemen het “praten over een draadje”. Wanneer een plug-in crasht, wordt de communicatie verbroken en u zou een foutbericht kunnen zien over een “wire read error”.

| Tip
Wanneer een plug-in crasht, geeft GIMP u een heel onheilspellend uitziend bericht weer dat u zegt dat de plug-in GIMP achtergelaten zou kunnen hebben in een corrupte staat en dat u zou moeten overwegen uw afbeeldingen op te slaan en af te sluiten. Strikt gesproken is dit helemaal juist, omdat plug-ins de macht hebben om bijna alles te wijzigen in GIMP, maar voor praktische doelen, ervaring heeft uitgewezen dat corruptie in feite heel zeldzaam is en veel gebruikers gaan gewoon door met werken en maken zich er geen zorgen over. Ons advies is dat u eenvoudigweg denkt aan hoeveel problemen het zou veroorzaken als er iets fout zou gaan, en dat tegen elkaar afweegt.

Vanwege de manier waarop plug-ins communiceren met GIMP, ze hebben geen mechanisme om te worden geïnformeerd over wijzigingen die u maakt aan een afbeelding nadat de plug-in is gestart. Als u een plug-in start en dan de afbeelding met enig ander gereedschap wijzigt, zou de plug-in kunnen crashen. Zelfs als hij dat niet doet, door dit te doen kan het onjuiste resultaten opleveren. U zou moeten vermijden meer dan een plug-in per keer uit te voeren op een afbeelding en moeten vermijden iets te doen aan de afbeelding totdat de plug-in zijn werk eraan heeft voltooid. Als u dit advies negeert, zou u niet alleen de afbeelding kunnen beschadigen, u zou ook het systeem voor Ongedaan maken kunnen beschadigen, zodat u niet in staat zult zijn uw fout te herstellen.

### 1.3. Nieuwe plug-ins installeren

De plug-ins die worden gedistribueerd met GIMP vereisen geen installatie. Plug-ins die u zelf download vereisen dat wel. Gewoonlijk is de standaard locatie in de gebruikersmap van GIMP in een map onder `/plug-ins`, waar de naam van de map dezelfde moet zijn als die van de bestandsnaam van de plug-in. U kunt de standaard locaties, waar GIMP zoekt naar plug-ins, vinden in de voorkeuren voor Mappen. Daar kunt u ook nieuwe locaties toevoegen waar GIMP zou moeten zoeken naar plug-ins. Er zijn verscheidene scenario's, afhankelijk van welk besturingssysteem u gebruikt en hoe de plug-in is gestructureerd.

#### 1.3.1. Linux / Unix systemen

De meeste plug-ins vallen in twee categorieën: kleine, waarvan de programmacode aangeleverd wordt in een enkel .c-bestand en grotere waarin de programmacode als een map met meerdere bestanden geleverd wordt, inclusief een `Makefile`.

Voor een eenvoudige een-bestand plug-in, noem het `borker.c`, is het installeren ervan slechts een kwestie van het uitvoeren van de opdracht gimptool-3.2 --install borker.c. Deze opdracht compileert de plug-in en installeert het in uw persoonlijke map voor plug-ins, `~/gimp-3.2/plug-ins` tenzij u die hebt gewijzigd. Dat zal ervoor zorgen dat hij automatisch wordt geladen, de volgende keer dat u GIMP start. U hoeft geen root te zijn om deze dingen te doen; in feite, liever niet. Als de plug-in weigert te compileren, wel, wees creatief.

#### 1.3.2. Vensters

De meeste GIMP plug-ins die beschikbaar zijn op Windows leveren een installatieprogramma of kunnen worden gedownload in een vooraf gecompileerd binaire indeling die klaar is om te worden gekopieerd naar een map naar keuze die wordt herkend door GIMP.

Als een installatieprogramma beschikbaar is, zou dat al het werk voor u moeten doen, een toepasselijk map selecteren en alle relevante bestanden kopiëren. Als dat niet zo is zou u in de Voorkeuren van GIMP moeten controleren naar welke map de plug-ins zouden moeten worden gekopieerd. Onthoud, elke plug-in moet in zijn eigen map staan met dezelfde naam als de plug-in.

#### 1.3.3. Apple macOS

Hoe u plug-ins installeert op macOS is het meest afhankelijk van hoe u GIMP zelf hebt geïnstalleerd. Als u een van de moedigen was en GIMP hebt geïnstalleerd met een van de pakketbeheerders, zoals fink [FINK] of darwinports [DARWINPORTS], werkt de installatie van de plug-in exact op de manier zoals die al is beschreven voor het platform Linux. Het enige verschil is, dat een aantal plug-ins zelfs al beschikbaar zouden kunnen zijn in de opslagruimte van uw pakketbeheerder, probeer die eens.

Als, aan de andere kant, u er de voorkeur aan geeft een vooraf gebouwd pakket van GIMP te pakken, zoals GIMP.app, zult u heel waarschijnlijk ook een vooraf gebouwde plug-in willen. U kunt proberen een vooraf gebouwde versie van de plug-in van uw dromen te krijgen van de auteur van de plug-in. Bouwen van uw eigen binaries betreft helaas ook het installeren van GIMP.

#### 1.3.4. De geïnstalleerde plug-in uitvoeren

Als u de plug-in eenmaal hebt geïnstalleerd, hoe activeert u die dan? Het menupad wordt bepaald door de plug-in zelf, dus om dit te beantwoorden zou u ofwel in de documentatie voor de plug-in moeten kijken (als die er al is), de menu's verkennen, of de opdracht voor de zoekfunctie van GIMP gebruiken door te drukken op / en dan de naam van de plug-in in te voeren. Als u weet hoe de broncode te lezen zou u die ook kunnen controleren om te zien in welk menu het zichzelf registreert.

Voor meer complexe plug-ins, georganiseerd als een map met meerdere bestanden, staat er gewoonlijk een bestand in dat ofwel is genaamd `INSTALL` of `README`, met instructies. Als dat niet zo is is het beste advies om de plug-in in de prullenbak te gooien en uw tijd te spenderen aan iets anders: elke code die is geschreven met zo weinig begrip voor de gebruiker zal op vele manieren heel frustrerend zijn.

Als u een plug-in installeert in uw persoonlijke map voor plug-ins die dezelfde naam heeft als die in de map van het systeem voor plug-ins, er kan er slechts een geladen worden en dat zal die zijn die in uw thuismap staat. U zult berichten ontvangen die u dit vertellen, elke keer als u GIMP start. Dit is dus een situatie die u beter kunt vermijden.

### 1.4. Plug-ins schrijven

Als u wilt leren hoe een plug-in te schrijven, kunt u genoeg hulp vinden op de website van de ontwikkelaars van GIMP [GIMP-DEV-PLUGIN]. GIMP is een complex programma, maar het ontwikkelingsteam heeft intensieve inspanningen gedaan om de leercurve voor het schrijven van plug-ins af te vlakken: er zijn goede instructies en voorbeelden en de hoofdbibliotheek, die plug-ins gebruiken als interface met GIMP (genaamd “libgimp”), heeft een goed gedocumenteerde API. Goede programmeurs, leren door het aanpassen van bestaande plug-ins, zijn vaak in staat interessante dingen te bereiken met slechts een paar dagen werk.

3. Opstartvenster aanpassen |  | 2. Gebruiken van Script-Fu scripts

Report a bug in GIMP Rapporteer een fout in de documentatie