Innhold: |
Innføring
i Script-Fu - del 1Bruk av Script-Fu konsollet Dersom du ofte bruker samme fremgangsmåte når du lager grafikk
i Gimp eller fikser på fotografier, og fremgangsmåten er en
tidkrevende prosess som innebærer bruk av mange funksjoner, kan
det være greit å automatisere denne prosessen.
|
| Til venstre i vinduet er listen med alle tilgjengelige
prosedyrer, og til høyre vises informasjon om den valgte prosedyren.
Øverst i informasjons-delen av vinduet vises navnet på
prosedyren, og en kort beskrivelse av hvordan den fungerer. Under
prosedyre-navnet vises listen med prosedyrens parametre. Parametre
er ulike egenskaper ved prosedyren som du selv bestemmer. Nederst i «Script-Fu Procedure Browser»-vinduet, i avsnittet «Tilleggsinformasjon» , er en beskrivelse av hva prosedyren gjør med bildet, og hvordan den fungerer. Mange prosedyrer presenterer også resultatet av hva den har gjort i bildet i form av en returverdi. I «Søk»-feltet kan du lete etter prosedyrer ved å søke på både navn, type og beskrivelse. |

Det første som må gjøres er å opprette et nytt
bildevindu:
Velg prosedyren «gimp-image-new». Denne prosedyren oppretter
et nytt bildevindu.
Markér prosedyren i listen, og klikk på «Bruk»-knappen
nede i «Script-Fu Procedure Browser»-vinduet.
Dette sender prosedyren til konsoll-vinduets innputt-tekstboks:
(gimp-image-new width height type)
Bestem det nye bildets bredde ved å endre «width»-parametret
til «300», og sett bildets høyde til 400 piksler ved
å endre «height»-parametret til «400». Det
siste parametret, «type», bestemmer hvilket farge-modus bildet
skal ha. Det nye bildet som skal opprettes, skal være et bilde i
vanlig RGB-modus. Her kan du enten endre «type» til «RGB»,
eller du kan også bruke tall-verdien «0».
Som du ser i parameter-listen, kan du også velge å bruke tall-verdier i dette parametret:

| Parameter-beskrivelsen består av 3 elementer: Element 1 viser benevnelsen som brukes av parameteret, slik at du kan se hvilken egenskap parameteret endrer. Element 2 viser hvilken skrivemåte som er gyldig å bruke, når du skal gi parameteret en verdi.
|
|
| Element 3 er en beskrivelse av parameterets egenskap, og forteller
ev. også hvilke verdier som er lovlig å bruke. Legg merke til at det ofte er oppgitt at det er lov å bruke beskrivende ord som parameter-verdi når parameterets datatype er INT32 (heltall). Det er f.eks. lov å skrive RGB istedet for å bruke tallverdien 0. Script-Fu tillater dette, slik at skriptet blir mer lesevennlig. |
Gi prosedyren følgende parametre:
(gimp-image-new 300 400 RGB)

og trykk «Enter»-tasten for å sende prosedyren til konsollet.
Det nye bildevinduet vil ikke bli vist før Gimp får beskjed
om å vise det. Vis bildevinduet ved å laste inn prosedyren
«(gimp-display-new)» i innputt-tekstboksen. Denne prosedyren
har bare ett parameter: «image», altså hvilket bilde
som skal vises:
(gimp-display-new image)
Bruk returverdien fra «gimp-image-new»-prosedyren for å
fortelle Gimp hvilket bilde som skal vises. Denne returverdien (27) ble
skrevet ut av konsollet da «gimp-image-new»-prosedyren ble
lastet inn:

Denne returverdien er det nye bildets ID. Bruk denne ID'en til å
fortelle Gimp at det er dette bildet som skal vises, ved å endre
parameteret «image» til «27»:
(gimp-display-new 27)
Gimp vil nå åpne et nytt bildevindu.
Prosedyren legges inn i konsollets tekstboks, og blir
gitt riktig parameter.
Prosedyren sendes til konsollet, og gir returverdi.
Slik ser bildet ut etter at prosedyren er sendt til konsollet.
| Vær oppmerksom på at du vil få andre returverdier enn de verdiene som er brukt i eksemplet her! Dette kommer av at verdier som genereres av konsoll-vinduet er tilfeldige, basert på hvor mange bildevinduer du har åpnet fra før av under arbeidsøkten. Men bruken av disse verdiene foregår på samme måte. |

Bildet har ikke fått noe lag ennå, og dette opprettes ved
å laste prosedyren «(gimp-layer-new)»:
(gimp-layer-new image width height type name opacity mode)
Denne prosedyren har 7 parametre:
«image»: I hvilket bilde laget skal legges til
«width»: bredden på laget
«height»: høyden på laget
«type»: farge-moduset til laget (RGB uten alfakanal, RGBA
med alfakanal, Gråskala, Indeksert etc.)
«name»: hvilket navn laget skal ha i lag-listen
«opacity»: lagets dekkevne/evne til å være ugjennomsiktig
(0 - 100%)
«mode»: hvilket lag-modus det skal ha (Normal, Differanse,
Glød etc.)
Gi prosedyren disse parametrene:
(gimp-layer-new 27 300 400 RGBA-IMAGE "Lag1" 100 NORMAL-MODE)
Prosedyren legges inn i konsollets tekstboks,
og blir gitt riktige parametre.
Prosedyren sendes til konsollet, og gir returverdi.
Når laget er opprettet må det legges til bildet ved hjelp
av prosedyren «(gimp-image-add-layer)»:
(gimp-image-add-layer image layer position)

Denne prosedyren har 3 parametre:
«image»: hvilket bilde laget skal vises i
«layer»: lagets ID (hvilket lag som skal legges til)
«position»: hvilken plassering laget skal ha i lag-listen
(standardvalg er -1, som betyr at det legges øverst i lag-listen).
Bruk returverdien fra «gimp-layer-new»-prosedyren som ble
sendt fra konsollet (100), og gi prosedyren følgende parametre:
(gimp-image-add-layer 27 100 -1)
Prosedyren legges inn i konsollets tekstboks,
og blir gitt riktige parametre.
Prosedyren sendes til konsollet, og gir returverdi.
Returverdien (#t) betyr "sant/riktig".
Slik ser bildet ut etter at prosedyren er sendt
til konsollet.
Her legges det nye laget (100) til bildet (27) øverst i lag-listen
(-1).
Det nye laget er nå lagt til i bildet (se informasjonen i vinduspynten!).
Fargen på det nye laget kan se noe merkelig ut, eller være helt gjennomsiktig. Dette kommer av at laget ennå ikke er fyllt med en farge eller et mønster.
Fyll det nye laget med det aktive mønsteret ved å laste
prosedyren «(gimp-drawable-fill)»:
(gimp-drawable-fill drawable fill-type)

Denne prosedyren har 2 parametre:
«drawable»: laget som skal fylles (betegnelsen «drawable»
brukes også om lag)
«fill-type»: type med fyll (mønster, forgrunnsfarge,
bakgrunnsfarge, gjennomsiktig, hvit farge, og ingen fyll)
Bruk returverdien fra «gimp-layer-new»-prosedyren som ble
sendt fra konsollet (100), og gi prosedyren følgende parametre:
(gimp-drawable-fill 100 PATTERN-FILL)

Prosedyren legges inn i konsollets tekstboks,
og blir gitt riktige parametre.
Prosedyren sendes til konsollet, og gir returverdi.
Slik ser bildet ut etter at prosedyren er sendt
til konsollet.
Laget fylles nå med det aktive mønsteret.

Nå som du har opprettet et bilde med et lag, kan det opprettes
et elliptisk utvalg i bildet ved hjelp av prosedyren «(gimp-ellipse-select)»:
(gimp-ellipse-select image x y width height operation antialias
feather feather-radius)

Denne prosedyren har 9 parametre:
«image»: bildet som utvalget skal opprettes i
«x»: x-koordinaten til det øvre venstre hjørnet
til utvalgets markeringsboks *)
«y»: y-koordinaten til det øvre venstre hjørnet
til utvalgets markeringsboks *)
«width»: utvalgets bredde målt i antall piksler
«height»: utvalgets høyde målt i antall piksler
«operation»: ellipse-utvalgets modus (erstatt, legg til, trekk
fra, eller overlapp)
«antialias»: bestemmer om utvalget skal ha jevne kanter
«feather»: bestemmer om utvalget skal ha myke kanter
«feather-radius»: bestemmer radiusen til den myke kanten
*)
«x»-verdien er antall piksler målt fra venstre bildekant,
og «y»-verdien er antall piksler målt fra bildets øverste
kant. Dette punktet (x,y) angir det øverste venstre hjørnet
til utvalgets markeringsboks:

Når du fører musepekeren over et bilde, vil x og y koordinatene
til musepekerens spiss vises nede i venstre hjørne i bildevinduet
til Gimp.

Bruk returverdien fra «gimp-image-new»-prosedyren (27) for
å angi hvilket bilde utvalget skal opprettes i, og gi prosedyren
følgende parametre:
(gimp-ellipse-select 27 28 88 230 180 CHANNEL-OP-ADD TRUE FALSE
0)

Prosedyren legges inn i konsollets tekstboks,
og blir gitt riktige parametre.
Prosedyren sendes til konsollet, og gir returverdi.
Slik ser bildet ut etter at prosedyren er sendt
til konsollet.
Det er nå opprettet en aktiv elliptisk markering i bildet.

Området rundt markeringen skal klippes bort, slik at det kun
vises en oval ellipse fyllt med mønsteret. For å fjerne området
utenfor den aktive markeringen må utvalget inverteres:
Inverter utvalget ved hjelp av prosedyren «(gimp-selection-invert)»:
(gimp-selection-invert image)

Denne prosedyren har bare en parameter:
«image»: bildet som inneholder det aktive utvalget
Bruk returverdien fra «gimp-image-new»-prosedyren (27) for
å angi hvilket bilde som inneholder det aktive utvalget:
(gimp-selection-invert 27)

Prosedyren legges inn i konsollets tekstboks, og blir
gitt riktige parametre.
Prosedyren sendes til konsollet, og gir returverdi.
Området utenfor det elliptiske utvalget er nå markert som
et aktivt utvalg.
Slett innholdet i den aktive markeringen ved hjelp av prosedyren «(gimp-edit-clear)»:
(gimp-edit-clear drawable)

Denne prosedyren har bare en parameter:
«drawable»: laget som det skal fjernes piksler fra
Bruk returverdien fra «gimp-layer-new»-prosedyren som ble
sendt fra konsollet (100), og gi prosedyren følgende parametre:
(gimp-edit-clear 100)

Prosedyren legges inn i konsollets tekstboks, og blir
gitt riktige parametre.
Prosedyren sendes til konsollet, og gir returverdi.
Slik ser bildet ut etter at prosedyren er sendt til konsollet.
Området utenfor det elliptiske utvalget er nå fjernet. Fordi
laget tidligere ble opprettet med alfakanal (RGBA), blir det bortklipte
området usynlig, slik at en senere kan legge til 3d-kant på
den ovale grafikken. Dersom laget ikke hadde blitt opprettet med alfakanal,
ville området fått bakgrunnsfarge.
Deaktiver det aktive utvalget ved hjelp av prosedyren «(gimp-selection-none)»:
(gimp-selection-none image)

Bruk returverdien fra «gimp-image-new»-prosedyren (27) for
å angi hvilket bilde som inneholder det aktive utvalget:
(gimp-selection-none 27)

Prosedyren legges inn i konsollets tekstboks, og blir
gitt riktige parametre.
Prosedyren sendes til konsollet, og gir returverdi.
Slik ser bildet ut etter at prosedyren er sendt til konsollet.
Det elliptiske utvalget er nå ikke lenger aktivt.

Gi den ovale grafikken 3d-kant ved hjelp av en prosedyre som tar i bruk
BumpMap-filteret: «(plug-in-bump-map)»:
(plug-in-bump-map run-mode image drawable bumpmap azimuth elevation
depth xofs yofs waterlevel ambient compensate invert type)

Denne prosedyren har 14 parametre:
«run-mode»: bestemmer om «BumpMap»-vinduet skal
åpnes eller ikke. Verdien «1» (none-interactive) åpner
ikke vinduet, og «0» (Interactive) åpner vinduet.
«image»: bildet som filteret skal brukes i
«drawable»: laget som skal få 3d-effekten
«bumpmap»: laget som skal brukes som høydekart
«azimuth»: lengdegraden/ (retningen) som lyset kommer fra
«elevation»: breddegraden/høyden på lyset
«depth»: dybden i 3d-virkningen
«xofs»: vannrett forskyvning av høydekartet (negative
verdier flytter kartet til høyre, og positive til venstre)
«yofs»: loddrett forskyvning av høydekartet (negative
verdier flytter kartet nedover, og positive oppover)
«waterlevel»: minsker 3d-effekten i gjennomsiktige områder
i bildet. Økning av verdi gir større virkning
«ambient»: øker lysstyrken i bildet og reduserer 3d-effekten.
Økning av verdi gir større virkning
«compensate»: motvirke formørkning. Verdien «1»
(true) aktiverer dette valget, og «0» (false) deaktiverer
valget
«invert»: inverterer 3d-effekten. Verdien «1»
(true) aktiverer dette valget, og «0» (false) deaktiverer
valget
«type»: angir hvilken metode som skal brukes for å koble
sammen de to lagene (lineær, sfærisk, sinus)
Legg merke til at de fleste parametrene angir verdier for de samme innstillingene
som finnes i det grafiske brukergrensesnittet til BumpMap-filteret.

Det grafiske brukergrensesnittet til "Bump Map"-tilleggsprogrammet.
(Klikk på «Hjelp»-knappen i «BumpMap»-vinduet
for å lese mer om innstillingene til BumpMap-filteret).
Bruk returverdien fra «gimp-image-new»-prosedyren (27) for
å angi hvilket bilde som filteret skal brukes i, og bruk returverdien
fra «gimp-layer-new»-prosedyren for å angi hvilke lag
som skal brukes (100):
(plug-in-bump-map 1 27 100 100 135 45 7 0 0 0 0 1 0 LINEAR)

Prosedyren legges inn i konsollets tekstboks, og blir
gitt riktige parametre.
Prosedyren sendes til konsollet, og gir returverdi.
Slik ser bildet ut etter at prosedyren er sendt til konsollet.
Legg merke til laget bruker seg selv som høydekart, og at standardvalgene
(bortsett fra dybden) til BumpMap-filteret brukes.
Den ovale grafikken har nå fått 3d-kant.

Det skal nå legges til tekst i bildet, men først må
forgrunnsfargen endres, slik at teksten får ønsket farge
når den opprettes.
Endre forgrunnsfargen ved hjelp av «(gimp-context-set-foreground)»:
(gimp-context-set-foreground foreground)

Denne prosedyren har bare en parameter:
«foreground»: bestemmer forgrunnsfarge oppgitt som RGB-farge
i en script-fu liste
Hent ønsket farge i «Endre forgrunnsfarge»-vinduet
til Gimp. Velg fargen på vanlig måte, og noter deg verdiene
til henholdsvis R, G og B feltene.
Verdiene må skrives i en liste for at prosedyren skal forstå
dem. RGB-fargeverdiene 151, 25 og 232 skrives slik i en Script-Fu liste:
'(152 25 232).
Legg merke til at det er ett mellomrom mellom fargeverdiene.

RGB-verdiene i "Endre forgrunnsfarge"-vinduet.
Endre forgrunnsfargen ved å gi prosedyren følgende parameter:
(gimp-context-set-foreground '(151 25 232))

Prosedyren legges inn i konsollets tekstboks, og blir
gitt riktig parameter.
Prosedyren sendes til konsollet, og gir returverdi.
Forgrunnsfargen endres til ønsket farge.
Legg til et tekstlag ved hjelp av prosedyren «(gimp-text-fontname)»:
(gimp-text-fontname image drawable x y text border antialias
size size-type fontname)

Denne prosedyren har 10 parametre:
«image»: bildet som teksten skal legges til i
«drawable»: laget som teksten (opprettet som et flytende utvalg)
skal knyttes til. Dersom verdien settes til «-1» opprettes
teksten som et eget lag
«x»: antall piksler mellom bildets venstre kant og tekstlagets
venstre kant
«y»: antall piksler mellom bildets øvre kant og tekstlagets
øvre kant
«text»: innholdet i teksten
«border»: avstanden mellom selve teksten og tekstlagets kant
(laggrense-størrelsen)
«antialias»: bestemmer om bokstavenes omriss skal ha jevne
kanter (TRUE eller FALSE)
«size»: tekstens størrelse målt i piksler eller
tommer (måleenhet bestemmes av «size-type»-parameteret)
«size-type»: bestemmer om bokstavenes størrelse skal
måles i PIXELS eller POINTS
«fontname»: skrift-type (font).
Du finner navnene på tekst-typene du kan bruke, ved å velge
"Vinduer > Dockable Dialogs" i bildevindu-menyen. Dette åpner
"Skrifter"-vinduet. Navnet på tekst-typen skrives i en
tekst-streng når du skal bruke det som "fontname"-parameter.
Dersom du ønsker å se hvordan tekst-typen ser ut, høyreklikker
du på tekst-navnet i "Skrifter"-vinduet, og velger "Render
Font Map..." i menyen som åpnes. Dette vil åpne verktøyvinduet
til skriptet "Render Font Map". Klikk på OK-knappen for
å åpne et bilde som viser hvordan tekst-typen ser ut.
Bruk returverdien fra «gimp-image-new»-prosedyren (27) for
å angi hvilket bilde som teksten skal legges til i:
(gimp-text-fontname 27 -1 35 139 "GIMP!" 5 TRUE 60 PIXELS
"ARIAL")

Prosedyren legges inn i konsollets tekstboks, og blir
gitt riktige parametre.
Prosedyren sendes til konsollet, og gir returverdi.
Slik ser bildet ut etter at prosedyren er sendt til konsollet.
Teksten «GIMP!» legges til i bildet som et eget lag med en
laggrense 5 piksler fra selve teksten. Bokstavene i teksten har antialiasing,
og opprettes med fonten «Arial», str. 60 piksler.

Endre tekstlagets lag-modus til «Mørkne» ved hjelp
av prosedyren «(gimp-layer-set-mode)»:
(gimp-layer-set-mode layer mode)

Denne prosedyren har 2 parametre:
«layer»: laget som det skal endres lag-modus på
«mode»: bestemmer lag-moduset (Normal, Lysne, Differanse etc.)
Bruk returverdien fra «gimp-text-fontname»-prosedyren (239)
for å angi at det er tekstlaget det skal endres lag-modus på:
(gimp-layer-set-mode 239 BURN-MODE)

Prosedyren legges inn i konsollets tekstboks, og blir
gitt riktige parametre.
Prosedyren sendes til konsollet, og gir returverdi.
Slik ser bildet ut etter at prosedyren er sendt til konsollet.
Tekstlagets modus settes til «Mørkne», slik at tekstfargen
blander seg med laget under.
Du har nå tegnet en oval logo med 3d-kant, bare ved gi kommandoer
til Script-Fu konsollet!
Veien fra å bruke det interaktive konsollet til å skrive Script-Fu
skript er ikke lang. Script-Fu er et enkelt skriptspråk, og du behøver
ikke å kjenne til så mye Script-Fu programmering for å
lage dine egne skript. Les litt mer her
om Script-Fu skripting før du setter prosedyrene, som er brukt
i eksemplet her, inn i et eget Script-Fu skript.
André Sætherskar, 2008