De filterplug-in

We hebben een procedure plug-in gebruikt voor de Eerste stap tutorial. Dit soort plug-ins werken zonder dat er een afbeelding of tekenbaar bestand als invoer nodig is. Meestal gebruiken we een plug-in om een afbeelding en de tekenbare bestanden te wijzigen. Dergelijke plug-ins worden _filter_plug-ins genoemd.

Wat is een tekenbaar bestand?

Een tekenbaar in Lumi verwijst naar een afbeeldingselement waarop kan worden getekend, zoals een laag of kanaal. Filterplug-ins werken doorgaans op deze elementen.

Een eenvoudig voorbeeld van een filterplug-in

#!/usr/bin/env lumi-scheme-interpreter-0.1

(define (scheme-simple-filter-plug-in image drawables)
  ;; Gebruik een let-instructie om een berichtvariabele en kern code te definiëren
  (let ((message "hello, world"))
    ;; Toon het bericht in Lumis foutenconsole
    (lumi-message message)
    ;; Keer de kleuren van het eerste geselecteerde drawable om
    (lumi-drawable-invert (vector-ref drawables 0) 1)))

;; Registreert de plug-in
(scheme-register-filter
  "scheme-simple-filter-plug-in"           ;; Naam van de hoofdprocedure
  "Simple Filter Plug-in Demo"             ;; De naam zoals deze in het Lumi-menu verschijnt
  "Tests a basic Scheme filter plug-in"    ;; Tooltip-beschrijving
  "Author Name"                            ;; Geef jezelf wat erkenning
  "License"                                ;; Licentie
  "Date written"                           ;; Schrijfdatum
  "*"                                      ;; Geeft aan dat deze plug-in een afbeelding vereist
  SF-ONE-OR-MORE-DRAWABLE)                 ;; Vereist een of meer geselecteerde drawables

;; Geef de menulocatie voor de plug-in op
(scheme-menu-register
  "scheme-simple-filter-plug-in"
  "<Image>/Plug-in")

Kopieer de tekst en sla deze op als simple-filter-plug-in.scm in een map met de naam simple-filter-plug-in in een van de plug-insmappen van Lumi. Een map met Lumi-plug-ins is de map any die wordt vermeld onder: Lumi > Bewerken > Voorkeuren > Mappen > Plug-ins

Klik in Linux met de rechtermuisknop op het bestand simple-filter-plug-in.scm, ga naar Eigenschappen > Machtigingen en vink Uitvoeren van bestand als programma toestaan aan. Zodra het bestand op de juiste plaats staat, uitvoerbaar is en vrij is van syntaxisfouten, zal het, wanneer Lumi opnieuw wordt opgestart, verschijnen in de bovenste menubalk, in een menu met de naam Plug-in.

De plug-in uitvoeren

  1. Open een afbeelding (deze filterplug-in vereist een afbeelding om te werken).
  2. Open Extra > Foutopsporing > Berichtenconsole om een bericht te bekijken.
  3. Selecteer Demo van eenvoudige filterplug-in in het menu Plug-in.
  4. De kleuren van een van de geselecteerde lagen zijn omgekeerd en er wordt een bericht afgedrukt op de foutconsole.

De plug-in bewerken

U kunt de plug-in aanpassen door het bestand .scm te bewerken. Om bijvoorbeeld het weergegeven bericht te wijzigen:

  1. Open het bestand en zoek de regel die message definieert.
  2. Vervang "hello, world" door uw aangepaste tekst.
  3. Sla het bestand op.

In Lumi versie 3 hoeven plug-ins niet te worden vernieuwd om opgeslagen wijzigingen door te voeren. Voer de plug-in eenvoudigweg opnieuw uit om het bijgewerkte bericht te zien.

Plug-inonderzoek

Shebang-lijn

De eerste regel zorgt ervoor dat het script als plug-in in Lumi 3 werkt:

#!/usr/bin/env lumi-scheme-interpreter-0.1

Proceduredefinitie

De procedure accepteert twee argumenten: de actieve afbeelding en de geselecteerde tekenbare afbeeldingen.

(define (scheme-simple-filter-plug-in image drawables)

Kernlogica

Een let instructie definieert een variabele en voert bewerkingen uit op het tekenbare bestand.

(let ((message "hello, world"))
  (lumi-message message) ;; Toont een bericht in Lumis foutenconsole
  (lumi-drawable-invert (vector-ref drawables 0) 1)) ;; Keert de kleuren van het eerste geselecteerde drawable om

Plug-inregistratie

De plug-in wordt bij Lumi geregistreerd als filterplug-in:

(scheme-register-filter
  "scheme-simple-filter-plug-in"           ;; Registreert de hoofdprocedure
  "Simple Filter Plug-in Demo"             ;; De naam zoals deze in het Lumi-menu verschijnt
  "Tests a basic Scheme filter plug-in"    ;; Tooltip-beschrijving
  "Author Name"                            ;; Naam van de auteur
  "License"                                ;; Licentietype
  "Date written"                           ;; Schrijfdatum
  "*"                                      ;; Geeft aan dat de plug-in een afbeelding vereist
  SF-ONE-OR-MORE-DRAWABLE)                 ;; Vereist een of meer geselecteerde drawables

Menuregistratie

Deze regel specificeert de menulocatie voor de plug-in:

(scheme-menu-register
  "scheme-simple-filter-plug-in"
  "<Image>/Plug-in")

Problemen oplossen

Als een plug-in niet verschijnt, controleer dan de locatie, naam en uitvoerbare eigenschap ervan.

De locatie moet zich in een zoekpad van de plug-in bevinden. De bestandsnaam moet overeenkomen met de naam van de map die deze bevat. Het bestand moet zijn ingesteld als uitvoerbaar bestand.

De Berichtconsole is een waardevol hulpmiddel voor het oplossen van problemen met aangepaste plug-ins. Als uw plug-in zich niet gedraagt zoals verwacht, kijk dan hier voor foutmeldingen of logbestanden. Het Terminal-venster kan ook foutopsporingsinformatie bieden en laadproblemen melden.