Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Arbeitsvereinfachung mit Skript-Fu unter Gimp

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
hastifranki



Anmeldungsdatum: 06.05.2006
Beiträge: 252

BeitragVerfasst am: 24. Jan 2012 21:02   Titel: Arbeitsvereinfachung mit Skript-Fu unter Gimp

Hallo,

ich versuche mich gerade in Skript-Fu unter Gimp einzuarbeiten.

Ich suche eine Prozedur, die mir das aktive Bildfenster (Nr.) zurück gibt. Wenn ich eine Datei über Skript-Fu öffne, erhalte ich die Bild-Nr. Die Datei ist aber schon geöffnet, so dass ich die Bild-Nr. manuell eingeben muss.

Code:
(define (schaerfen a0)
(define a1 (plug-in-decompose 1 a0 (car (gimp-image-get-active-drawable a0)) "HSV" 0))
(plug-in-unsharp-mask 1 (car (cdr (cdr a1))) (car (gimp-image-active-drawable (car (cdr (cdr a1))))) 5 0.5 0)
(plug-in-unsharp-mask 1 (car (cdr (cdr a1))) (car (gimp-image-active-drawable (car (cdr (cdr a1))))) 5 0.5 0)
(define a2 (plug-in-compose 1 (car a1) 2 (car (cdr a1)) (car (cdr (cdr a1))) 0 "HSV"))
(gimp-display-new (car a2)))
; Im GIMP und im Menü registrieren
(script-fu-register "schaerfen"
   _"_Bild schärfen" ;Menutext
   "Bilder schärfen"
   "Max Mustermann"
   "2012, Max Mustermann"
   "Jan 24, 2012"
   ""
   SF-VALUE "Bitte das Bildfenster eingeben" "1")
 (script-fu-menu-register "schaerfen"
 "<Toolbox>/Xtns/MeineSkripte/Bilder schärfen")



Das Skript extrahiert die Kanäle im HSV-Farbmodus. Das Bild „*Wert.*“ wird unscharf maskiert. Danach wird alles wieder zusammengefügt.

Die Schrittfolge habe ich bisher immer manuell durchgeführt. Um Farbfehler zu vermeiden, habe ich unscharf maskieren nicht direkt ausgeführt. Mit dem Skript möchte ich mir die Arbeit vereinfachen.

Vielleicht hat jemand eine Idee. Möglicherweise fehlt nur noch ein passendes Plugin.

Viele Grüße
Frank
 
Benutzer-Profile anzeigen Private Nachricht senden

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 25. Jan 2012 22:04   Titel:

Ich biete
Code:

(define (schaerfen a0 d0)
(define a1 (plug-in-decompose 1 a0 (car (gimp-image-get-active-drawable a0)) "HSV" 0))
(plug-in-unsharp-mask 1 (car (cdr (cdr a1))) (car (gimp-image-active-drawable (car (cdr (cdr a1))))) 5 0.5 0)
(plug-in-unsharp-mask 1 (car (cdr (cdr a1))) (car (gimp-image-active-drawable (car (cdr (cdr a1))))) 5 0.5 0)
(define a2 (plug-in-compose 1 (car a1) d0 (car (cdr a1)) (car (cdr (cdr a1))) 0 "HSV"))
(gimp-display-new (car a2)))
; Im GIMP und im Menü registrieren
(script-fu-register "schaerfen"
   _"_Bild schärfen" ;Menutext
   "Bilder schärfen"
   "Max Mustermann"
   "2012, Max Mustermann"
   "Jan 24, 2012"
   ""
   SF-IMAGE    "Image" 0
   SF-DRAWABLE "Layer" 0)
(script-fu-menu-register "schaerfen"
   "<Toolbox>/Xtns/MeineSkripte/Bilder schärfen")

Hausaufgabe: Im Kopf Diff machen und verstehen was und warum es geändert wurde. Prozeduren-Browser in Gimp entdecken (Hilfe->Prozeduren-Browser) und nutzen.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

hastifranki



Anmeldungsdatum: 06.05.2006
Beiträge: 252

BeitragVerfasst am: 26. Jan 2012 11:06   Titel:

Hallo Janka,

vielen Dank! Die Parametertypen hatte ich mir noch nicht gründlich genug angesehen.

Im folgenden Skript habe ich die Zeile 2 noch etwas vereinfacht. Außerdem wird in eine Logdatei geschrieben. (Diese Zeilen kann man wieder auskommentieren, wenn alles richtig läuft.)
Code:
(define (schaerfen a0 d0)
(define a1 (plug-in-decompose 1 a0 d0 "HSV" 0))
(plug-in-unsharp-mask 1 (car (cdr (cdr a1))) (car (gimp-image-active-drawable (car (cdr (cdr a1))))) 5 0.5 0)
(plug-in-unsharp-mask 1 (car (cdr (cdr a1))) (car (gimp-image-active-drawable (car (cdr (cdr a1))))) 5 0.5 0)
(define a2 (plug-in-compose 1 (car a1) d0 (car (cdr a1)) (car (cdr (cdr a1))) 0 "HSV"))
(gimp-display-new (car a2))
;In Logdatei schreiben:
(define p1 (open-output-file "Gimp_Skript_schaerfen.log"))
(newline p1)
(write "a0 (Image) : " p1)
(write a0 p1)
(newline p1)
(write "do (Layer) : " p1)
(write d0 p1)
(newline p1)
(write "a1 : " p1)
(write a1 p1)
(newline p1)
(write "a2 : " p1)
(write a2 p1)
(newline p1)
(write "(car (gimp-image-active-drawable (car (cdr (cdr a1))))) :" p1)
(write (car (gimp-image-active-drawable (car (cdr (cdr a1))))) p1)
(newline p1)
(close-output-port p1)
)
; Im GIMP und im Menü registrieren
(script-fu-register "schaerfen"
   _"_Bild schärfen" ;Menutext
   "Bilder schärfen"
   "Max Mustermann"
   "2012, Max Mustermann"
   "Jan 24, 2012"
   ""
   SF-IMAGE    "Image" 0
   SF-DRAWABLE "Layer" 0)
(script-fu-menu-register "schaerfen"
   "<Toolbox>/Xtns/MeineSkripte/Bilder schärfen")


Viele Grüße
Frank
 
Benutzer-Profile anzeigen Private Nachricht senden

hastifranki



Anmeldungsdatum: 06.05.2006
Beiträge: 252

BeitragVerfasst am: 27. Jan 2012 18:18   Titel:

Hallo,

ich habe das Skript entsprechend den Vorgaben aus der Gimp-Hilfe noch etwas verbessert:

Code:
(define (schaerfen a0 d0)
(let*    (   (a1 (plug-in-decompose 1 a0 d0 "HSV" 0)) (a2 0)
      (d1 (car (gimp-image-active-drawable (car (cdr (cdr a1))))))
      ;Logdatei öffnen
      (p1 (open-output-file "Gimp_Skript_schaerfen.log"))
   )
   (plug-in-unsharp-mask 1 (car (cdr (cdr a1))) d1 5 0.5 0)
   (plug-in-unsharp-mask 1 (car (cdr (cdr a1))) d1 5 0.5 0)
   (set! a2 (plug-in-compose 1 (car a1) d1 (car (cdr a1)) (car (cdr (cdr a1))) 0 "HSV"))
   ;Log schreiben und danach Logdatei schließen:
   (gimp-display-new (car a2))
   (newline p1) (write "a0 (Image) : " p1) (write a0 p1)
   (newline p1) (write "do (Layer) : " p1) (write d0 p1)
   (newline p1) (write "d1 (Layer) : " p1) (write d1 p1)
   (newline p1) (write "a1 : " p1) (write a1 p1)
   (newline p1) (write "a2 : " p1) (write a2 p1) (newline p1)
   (close-output-port p1)
))
; Im GIMP und im Menü registrieren
(script-fu-register "schaerfen"
   _"_Bild schärfen" ;Menutext
   "Bilder schärfen"
   "Max Mustermann"
   "2012, Max Mustermann"
   "Jan 27, 2012"
   ""
   SF-IMAGE    "Image" 0
   SF-DRAWABLE "Layer" 0)
(script-fu-menu-register "schaerfen"
   "<Toolbox>/Xtns/MeineSkripte/Bilder schärfen")


VG
Frank
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy