Ultima versione: https://github.com/jackroom/lomopack
Salvare il seguente codice come lomo.scm nella cartella Scripts del Gimp (/home/utente/.gimp-2.x/scripts)
; GIMP Lomo v0.3 ; Simula l'effetto di una "lomografia". ; ; Copiare il file lomo.scm nella cartella scripts di Gimp. Se il programma ; è in esecuzione, aggiornare la lista dei filtri selezionando ; Filtri > Script-fu > Rinfresca gli scripts. ; Il filtro lomo sarà così accessibile da Filtri > Personal > Lomo. (define (script-fu-lomo inImage inBackground theContrast theMerge theColor theBlur theVign) ; Avvia il gruppo della cronologia per questo script (gimp-image-undo-group-start inImage) (define (Border theAction) (let* ( (inBlur (car (gimp-layer-copy inBackground TRUE))) ; Imposta un raggio proporzionale per la sfocatura (theWidth (car (gimp-drawable-width inBlur))) (theHeight (car (gimp-drawable-height inBlur))) (theBlursize (/ (/ (+ theHeight theWidth) 2) 100)) (theDrawable 0) (theE 8) ) (gimp-image-add-layer inImage inBlur -1) (cond ((= theAction 0) (plug-in-gauss-rle RUN-NONINTERACTIVE inImage inBlur theBlursize TRUE TRUE) ) ((= theAction 1) (gimp-levels inBlur HISTOGRAM-VALUE 0 255 1.00 0 (- 255 (/ (* theVign 255) 100))) ) ) ; Crea la maschera per il livello della sfocatura (let ( (inMask (car (gimp-layer-create-mask inBlur ADD-WHITE-MASK))) ) (gimp-layer-add-mask inBlur inMask) ) ; Disegna un'ellisse nella maschera (set! theDrawable (car (gimp-image-get-active-drawable inImage))) (gimp-ellipse-select inImage (/ theWidth theE) (/ theHeight theE) (- theWidth(* (/ theWidth theE) 2)) (- theHeight (* (/ theHeight theE) 2)) 2 TRUE FALSE 0) (gimp-invert theDrawable) (gimp-selection-none inImage) (plug-in-gauss-rle2 RUN-NONINTERACTIVE inImage theDrawable (/ theWidth 2) (/ theHeight 2)) ; Fonde il livello della sfocatura (gimp-image-merge-down inImage inBlur 1) ; Attiva il livello modificato (set! inBackground (car (gimp-image-get-active-drawable inImage))) ) ) ; --------------------------------------------------------------------- ; Aggiunge la sfocatura ai bordi ; --------------------------------------------------------------------- (if (= theBlur 1) (begin (Border 0) ) ) ; --------------------------------------------------------------------- ; Aggiunge un effetto di vignettatura ; --------------------------------------------------------------------- (if (> theVign 0) (begin (Border 1) ) ) ; --------------------------------------------------------------------- ; Effetto Lomo ; Da questo punto vengono applicati gli effetti di colore all'immagine ; --------------------------------------------------------------------- (let* ( ; Esegue la copia del livello per la tonalità (inTonal (car (gimp-layer-copy inBackground TRUE))) ; Copia il livello per la desaturazione (inDesat (car (gimp-layer-copy inBackground TRUE))) ) ; Inserisce il livello tonalità (gimp-image-add-layer inImage inTonal -1) ; Inserisce il livello da desaturare (gimp-image-add-layer inImage inDesat -1) ; Inverte i livelli del canale blu del livello principale (gimp-levels inBackground HISTOGRAM-BLUE 0 255 1.00 255 0) ; Imposta la modalità della tonalità come Luce Forte (gimp-layer-set-mode inTonal HARDLIGHT-MODE) ; Desatura l'ultimo livello (gimp-desaturate-full inDesat DESATURATE-LUMINOSITY) ; Modalità livello desaturazione: Solo Toni Scuri (gimp-layer-set-mode inDesat DARKEN-ONLY-MODE) ; Regola livelli (contrasta) (gimp-levels inDesat HISTOGRAM-VALUE 40 215 1.00 0 255) ; Imposta Opacità al 40% (gimp-layer-set-opacity inDesat 40) ; Aumenta il contrasto regolando le curve di inTonal (if (= theContrast 1) (begin (gimp-curves-spline inTonal 0 8 #( 0 0 70 50 195 215 255 255)) (gimp-curves-spline inTonal 1 8 #( 0 0 84 70 212 208 255 255)) (gimp-curves-spline inTonal 2 8 #( 0 0 144 127 212 212 255 255)) (gimp-curves-spline inTonal 3 8 #( 0 0 70 82 194 210 255 255)) ) ) ; Aggiunge del colore (if (= theColor 1) (begin (plug-in-retinex RUN-NONINTERACTIVE inImage inBackground 80 3 2 1.9) ) ) ; Appiattisce i livelli se deciso (if (= theMerge 0) (begin ; Unisce il livello della tonalità allo sfondo (gimp-image-merge-down inImage inTonal 1) ; Unisce il livello della saturazione (gimp-image-merge-down inImage inDesat 1) ) ) ; Chiude il gruppo della cronologia (gimp-image-undo-group-end inImage) ; Aggiorna l'immagine (gimp-displays-flush) ) ) ; ----------------------------------------------------------------------- ; Attiva lo script ; ----------------------------------------------------------------------- (script-fu-register "script-fu-lomo" "Lomo" "Genera un effetto Lomo" "any Jack" "2012" "February 3, 2012" "RGB*" SF-IMAGE "Image" 0 SF-DRAWABLE "Livello da duplicare" 0 SF-TOGGLE "Aumenta il contrasto (Blu enfatizzati)" FALSE SF-TOGGLE "Crea livelli separati" FALSE SF-TOGGLE "Colora (Rende i colori più vivaci)" FALSE SF-TOGGLE "Aggiungi una sfocatura ai bordi" FALSE SF-ADJUSTMENT "Vignettatura" '(0 0 100 1 10 0 0) ) ; Definisce dove inserire il filtro nel menu (script-fu-menu-register "script-fu-lomo" "/Filters/Personal")