## Kapitel 13. Scripting og skrivning af udvidelsesmoduler

## 1. Udvidelsesmoduler

### 1.1. Indledning

En af de bedste ting ved GIMP er, hvor let programmets funktionalitet kan udvides ved hjælp af udvidelsesmoduler. Udvidelsesmoduler til GIMP er eksterne programmer, der kører under kontrol af GIMP-programmet og interagerer meget tæt med det. Udvidelsesmoduler kan manipulere billeder på næsten enhver måde, som brugerne kan. Deres fordel er, at det er meget lettere at tilføje en kapacitet til GIMP ved at skrive et lille udvidelsesmodul end ved at ændre den store, komplekse kode, der udgør GIMP-kernen. Mange værdifulde udvidelsesmoduler har C-kildekode, der kun indeholder 100–200 linjer eller deromkring.

Flere dusin udvidelsesmoduler er inkluderet i GIMP-hoveddistributionen og installeres automatisk sammen med GIMP. De fleste af dem kan tilgås via menuen Filtre (faktisk er alt i denne menu et udvidelsesmodul), men et antal er placeret i andre menuer. I mange tilfælde kan du bruge en uden nogensinde at indse, at det er et udvidelsesmodul. For eksempel er funktionen “Normalisér” til automatisk farvekorrektion faktisk et udvidelsesmodul, selvom der ikke er noget i dets virkemåde, som røber det. Selv import og eksport af billeder sker med udvidelsesmoduler.

Alle kan skrive et GIMP-udvidelsesmodul og gøre det tilgængeligt online. Der er mange nyttige udvidelsesmoduler, der kan fås på denne måde. Nogle af dem er beskrevet andetsteds i brugervejledningen.

Med denne frie tilgængelighed kommer en vis grad af risiko. Det faktum, at alle kan frigive udvidelsesmoduler, betyder, at der ikke er nogen effektiv kvalitetskontrol. De udvidelsesmoduler, der distribueres med GIMP, er alle blevet testet og justeret af udviklerne. Yderligere udvidelsesmoduler, der er tilgængelige online, kan være blevet hacket sammen på et par timer og derefter forladt. Nogle skabere af udvidelsesmoduler er ligeglade med robusthed, og selv for dem, der gør det, er deres evne til at teste på en række forskellige systemer i forskellige situationer ofte ret begrænset. Når du henter et udvidelsesmodul, får du dybest set noget gratis, og nogle gange får du præcis, hvad du betaler for. Dette er ikke for at afskrække dig, bare for at sikre, at du forstår, at ikke alle udvidelsesmoduler, der er tilgængelige online, leverer, hvad du forventer af dem.

| Advarsel
Udvidelsesmoduler, der er fuldgyldige eksekverbare programmer, kan gøre alle de ting, som ethvert andet program kan gøre. Dette inkluderer installation af bagdøre på dit system eller på anden måde kompromittering af dets sikkerhed. Installér ikke et udvidelsesmodul, medmindre det kommer fra en kilde, du har tillid til.

| Bemærk
I GIMP 3.0 var der brug for at ændre udvidelsesmodul-API'et mange steder. Derfor skal udvidelsesmoduler, der er skrevet til ældre versioner, opdateres og vil ikke fungere uden ændringer.

### 1.2. Brug af udvidelsesmoduler

For det meste kan du bruge et udvidelsesmodul som ethvert andet GIMP-værktøj uden at skulle være opmærksom på, at det er et udvidelsesmodul. Men der er et par ting ved udvidelsesmoduler, der er værd at vide.

Den ene er, at udvidelsesmoduler generelt ikke er så robuste som GIMP-kernen. Når GIMP går ned, betragtes det som en meget alvorlig ting: Det kan koste brugeren en masse problemer og hovedpine. Når et udvidelsesmodul går ned, er konsekvenserne normalt ikke så alvorlige. I de fleste tilfælde kan du fortsætte med at arbejde uden at bekymre dig for meget om det.

| Bemærk
Fordi udvidelsesmoduler er separate programmer, kommunikerer de med GIMP på en særlig måde: Udviklerne af GIMP kalder det “at tale over en ledning”. Når et udvidelsesmodul går ned, bryder kommunikationen sammen, og du kan muligvis se en fejlmeddelelse om en “ledningslæsefejl”.

| Vink
Når et udvidelsesmodul går ned, giver GIMP dig en meget ildevarslende besked, der fortæller dig, at udvidelsesmodulet muligvis har efterladt GIMP i en beskadiget tilstand, og du bør overveje at gemme dine billeder og afslutte. Strengt taget er dette helt korrekt, fordi udvidelsesmoduler har beføjelse til at ændre næsten alt i GIMP, men erfaringen har vist, at det faktisk ret sjældent sker, og mange brugere fortsætter bare med at arbejde og bekymrer sig ikke om det. Vores råd er, at du simpelthen tænker over, hvor meget besvær det ville give dig, hvis noget gik galt, og vejer det mod oddsene.

På grund af den måde udvidelsesmoduler kommunikerer med GIMP på, har de ingen mekanisme til at blive informeret om ændringer, du foretager i et billede, efter at udvidelsesmodulet er startet. Hvis du starter et udvidelsesmodul og derefter ændrer billedet ved hjælp af et andet værktøj, kan udvidelsesmodulet gå ned. Selvom det ikke gør det, kan det medføre forkerte resultater. Du bør undgå at køre mere end ét udvidelsesmodul ad gangen på et billede og undgå at gøre noget ved billedet, indtil udvidelsesmodulet er færdig med at arbejde på det. Hvis du ignorerer dette råd, kan du ikke kun ødelægge billedet, du kan også forstyrre fortrydelsessystemet, så du ikke kan genoprette tilstanden fra før fejlen.

### 1.3. Installation af nye udvidelsesmoduler

De udvidelsesmoduler, der distribueres med GIMP, kræver ikke installation. Udvidelsesmoduler, som du selv henter, gør. Normalt er standardplaceringen i GIMPs brugermappe i en mappe under `/plug-ins`, hvor mappenavnet skal være det samme som udvidelsesmodulets filnavn. Du kan finde standardplaceringerne, hvor GIMP søger efter udvidelsesmoduler, i indstillingerne for Datamapper. Der kan du også tilføje nye placeringer, hvor GIMP skal lede efter udvidelsesmoduler. Der er flere scenarier, afhængigt af hvilket styresystem du bruger, og hvordan udvidelsesmodulet er struktureret.

#### 1.3.1. Linux-/Unix-lignende systemer

De fleste udvidelsesmoduler tilhører en af to kategorier: små, hvis kildekode distribueres som en enkelt .c-fil, og større, hvis kildekode distribueres som en mappe, der indeholder flere filer, herunder en `Makefile`.

For a simple one-file plug-in, call it `borker.c`, installing it is just a matter of running the command gimptool-3.0 --install borker.c. This command compiles the plug-in and installs it in your personal plug-in directory, `~/gimp-3.0/plug-ins` unless you have changed it. This will cause it to be loaded automatically the next time you start GIMP. You don't need to be root to do these things; in fact, you shouldn't be. If the plug-in fails to compile, well, be creative.

#### 1.3.2. Windows

De fleste GIMP-udvidelsesmoduler, der er tilgængelige på Windows, kommer enten med et installationsprogram eller kan hentes i et forudkompileret binært format, der er klar til at kopiere til en mappe efter eget valg, der genkendes af GIMP.

Hvis et installationsprogram er tilgængeligt, bør det gøre alt arbejdet med at vælge en passende mappe og kopiere alle relevante filer. Hvis ikke, skal du muligvis tjekke GIMPs mappeindstillinger, hvor udvidelsesmoduler skal kopieres til. Husk, at hvert udvidelsesmodul skal være i sin egen mappe med samme navn som udvidelsesmodulet.

#### 1.3.3. Apple Mac OS X

Hvordan du installerer udvidelsesmoduler i OS X afhænger for det meste af, hvordan du installerede GIMP selv. Hvis du var en af de modige og installerede GIMP gennem et af pakkehåndteringsprogrammerne som fink [FINK] eller darwinports [DARWINPORTS], fungerer installationen af udvidelsesmoduler præcis, som den allerede er beskrevet for Linux-platformen. Den eneste forskel er, at et par udvidelsesmoduler muligvis endda er tilgængelige i pakkearkivet i din pakkehåndtering, så prøv det.

Hvis du på den anden side foretrækker at få fat i en forudbygget GIMP-pakke som f.eks. GIMP.app, vil du sandsynligvis også gerne have et forudbygget udvidelsesmodul. Du kan prøve at få en forudbygget version af drømmeudvidelsesmodulet fra forfatteren af udvidelsesmodulet. Kompilering af dine egne binærfiler involverer desværre installation af GIMP.

#### 1.3.4. Kørsel af det installerede udvidelsesmodul

Når du har installeret udvidelsesmodulet, hvordan aktiverer du det så? Menustien bestemmes af selve udvidelsesmodulet, så for at besvare dette skal du enten se på dokumentationen til udvidelsesmodulet (hvis der er nogen), udforske menuerne eller bruge GIMPs kommandosøgefunktion ved at trykke på / og derefter indtaste navnet på udvidelsesmodulet. Hvis du ved, hvordan du læser kildekode, kan du også kontrollere det for at se, i hvilken menu det registrerer sig selv.

For mere komplekse udvidelsesmoduler, organiseret som en mappe med flere filer, er der normalt en fil indeni kaldet enten `INSTALL` eller `README` med instruktioner. Hvis ikke, er det bedste råd at smide udvidelsesmodulet i papirkurven og bruge din tid på noget andet: Enhver kode skrevet med så lidt omsorg for brugeren vil sandsynligvis være frustrerende på utallige måder.

Hvis du installerer et udvidelsesmodul i din personlige udvidelsesmodulmappe, der har samme navn som et i systemets udvidelsesmappe, kan kun et indlæses, og det vil være det i din hjemmemappe. Du vil modtage meddelelser, der fortæller dig dette, hver gang du starter GIMP. Dette er sandsynligvis en situation, der helst skal undgås.

### 1.4. At skrive udvidelsesmoduler

Hvis du vil lære at skrive et udvidelsesmodul, kan du finde masser af hjælp på GIMP-udviklernes websted [GIMP-DEV-PLUGIN]. GIMP er et komplekst program, men udviklingsholdet har gjort en ihærdig indsats for at gøre indlæringskurven for skrivning af udvidelsesmoduler mindre stejl: der er gode instruktioner og eksempler, og hovedbiblioteket, som udvidelsesmoduler bruger til at kommunikere med GIMP (kaldet “libgimp”), har en veldokumenteret API. Gode programmører, der lærer ved at ændre eksisterende udvidelsesmoduler, er ofte i stand til at udføre interessante ting efter blot et par dages arbejde.

3. Tilpas opstartsbilledet |  | 2. Brug af Script-Fu-programmer

Report a bug in GIMP Rapportér en fejl i fejlsporing