3.4. Det første Script-Fu skriptet ditt

Du har kanskje hatt ein velfortent pause for å få igjen pusten? I alle fall burde du nå vere klar for den fjerde leksjonen — det første skriptet ditt i Script-Fu.

Til nå har du arbeidd på Script-Fu konsollen. Nå går vi over til å skriva dei som tekstfiler. Du kan bruke ein rein tekstbehandlar som ikkje legg inn ekstra koder i skriptet. Sjølv bruker eg Notepad++ sett til skriftkoden UTF-8, men det finst sikkert andre som fungerer like bra. (OA)

Kvar du lagrar filene, er eigentleg likegyldig. Har du tilgang til GIMP sine skriptmapper, kan du legge skripta dine der. Det beste er likevel å halde skripta dine langt borte frå dei ferdiginstallerte skripta, og heller lagra dei i eigne skriptmapper.

Ein eller annan stad i maskinen din har GIMP laga ei privat filmappe med namnet gimp-2.4. I denne mappa finn du undermappa scripts. Dette er normalt den perfekte plassen å legge skripta dine i. (Skulle likevel det merkelege skje at du får feilmeldingar frå GIMP når du oppdaterer skripta, kan du svært forsiktig prøve GIMP si mappe før du går ut frå at feilen ligg i skriptet. Det hender at skriptet i den private mappa av ein eller annan grunn ikkje kan køyrast, sjølv om det er perfekt).

Du kan finne plasseringa av den personleg mappa di i brukarinnstillingane under Mapper/Skript.

Du har kanskje oppdaga at eg tilsynelatande er litt vinglande i norsken i dette kapitlet. Grunnen er at det er vanleg, av omsyn til brukarane over heile verda, å skrive skripta på engelsk. Dermed blir det meste som går direkte inn i skriptet skrive på engelsk. Også ein del filnamn, mapper osv har engelske namn ganske enkelt fordi det er desse du finn i datamaskinen din.

Nå må vi registrera funksjonen vår i GIMP. Dette gjer vi ved å kalle opp funksjonen <code>script-fu-register</code>. Når GIMP les inn eit skript, vil denne funksjonen legge skriptet inn i prosedyredatabasen. Du kan eigentleg skrive inn dette funksjonsoppkallet kvar som helst i skriptet, men det er vanleg å setje det heilt på slutten, etter alle dei andre kodane.

Her er utlistinga av programbiten som registrerer denne funksjonen (forklaringa kjem etterpå):

        (script-fu-register
          "script-fu-text-box"                        ;func name
          "Text Box"                                  ;menu label
          "Creates a simple text box, sized to fit\
            around the user's choice of text,\
            font, font size, and color."              ;description
          "Michael Terry"                             ;author
          "copyright 1997, Michael Terry"             ;copyright notice
          "October 27, 1997"                          ;date created
          ""                     ;image type that the script works on
          SF-STRING      "Text:"         "Text Box"   ;a string variable
          SF-FONT        "Font:"         "Charter"    ;a font variable
          SF-ADJUSTMENT  "Font size"     '(50 1 1000 1 10 0 1)
                                                      ;a spin-button
          SF-COLOR       "Color:"        '(0 0 0)     ;color variable
        )
        (script-fu-menu-register "script-fu-text-box" "<Toolbox>/Xtns/Script-Fu/Text")
      

Dersom du lagrar dette i skriptkatalogen som ei tekstfil med filutvidinga .scm og deretter vel Utvidingar->Script-Fu->Oppdater skript, vil dette skriptet dukke opp i Utvidingar->Script-Fu->Text->Text Box. (Seinare i kurset vil namnet bli fornorska til Tekstboks).

Førebels gjer dette skriptet naturleg nok ingenting. Einaste er at du ser korleis skriptet blir registrert i GIMP og få ein kontroll på at du har gjort alt rett så langt.

Dersom du aktiverer prosedyrelesaren ( Utvidingar->Prosedyrelesar) vil du finna at scriptet ditt nå er registrert i databasen.

For å registrera skriptet i GIMP, må vi skrive inn dei sju obligatoriske parametra, legge til skriptet sine eigne parametrar og ei beskriving av skriptet, og endeleg dei verdiane du ønskjer skriptet skal opnast med i dei variable parametra. Deretter kallar du opp funksjonen “script-fu-register” frå skriptet ditt.

Dei nødvendige parametra

  • Namnet på funksjonen. Dette er funksjonen som blir aktivisert når du kallar opp skriptet. Inngangen til skriptet, om du vil. Dette er heilt nødvendig fordi du kan definera mange funksjonar innan same fila, og GIMP må vita kva for funksjonar som skal kallast opp. I eksemplet definerte vi bare ein funksjon, “text-box”, som så blei registrert.

  • Adresse. Dette bestemmer kvar i menyen skriptet skal plasserast. Den eksakte adressa blir spesifisert på same måten som i Unix, med rot (startpunkt) anten i “Toolbox” eller i “right-click”.

    Dersom skriptet ditt ikkje arbeider på eit eksisterande bilete, men lagar sitt eige bilete slik “Text Box” kjem til å gjere, må du legge skriptet i menyen til Verktøyskrinet (“Toolbox”). Dette er hovudvindauget i GIMP der alle dei ulike verktøya er plasserte. Adressa blir altså slik vi har skrive ho inn i eksemplet.

    Skal skriptet derimot operera på eit eksisterande bilete, må du legge skriptet inn i ein meny som dukkar opp når du høgreklikkar (“right-click”) på eit ope bilete. Adressa blir då “right-clic/Xtns/Script-Fu/Text/Text Box”.

    Går vi tilbake til eksemplet, kan du sjå at skriptet “Text Box” blir registrert i “Text”-menyen til “Script-Fu”-menyen til menyen “Xtns” i “Toolbox”. (puh!) Altså: Exts->Script-Fu->Text->Text Box, eller på norsk: Utvidingar->Script-Fu->Text->Text Box.

    Ikkje store skilnaden. Dersom du la merke til det, fann du kanskje ut at menyen Text ikkje fanst før vi la inn “Text Box”. GIMP lager automatisk nye menyar dersom det er behov for det.

  • Ei beskriving av skriptet slik det skal visast i prosedyrelesarren.

  • Namnet ditt (dvs. forfattaren av skriptet).

  • Copyright-informasjon.

  • Datoen skriptet blei laga eller sist revidert.

  • The Bilettypar skriptet kan brukast på. Dette kan vere RGB, RGBA, GRAY, GRAYA, INDEXED eller INDEXEDA. Eller ingen i det heile. I eksemplet er bilettypen ikkje definert fordi skriptet opnar sitt eige bilete.