Arbeitsvereinfachung mit Skript-Fu unter Gimp

Post Reply
Message
Author
User avatar
hastifranki
Posts: 259
Joined: 06. May 2006 19:58

Arbeitsvereinfachung mit Skript-Fu unter Gimp

#1 Post by hastifranki »

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: Select all

(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"&#41;

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

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Ich biete

Code: Select all

&#40;define &#40;schaerfen a0 d0&#41;
&#40;define a1 &#40;plug-in-decompose 1 a0 &#40;car &#40;gimp-image-get-active-drawable a0&#41;&#41; "HSV" 0&#41;&#41;
&#40;plug-in-unsharp-mask 1 &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41; &#40;car &#40;gimp-image-active-drawable &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41;&#41;&#41; 5 0.5 0&#41;
&#40;plug-in-unsharp-mask 1 &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41; &#40;car &#40;gimp-image-active-drawable &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41;&#41;&#41; 5 0.5 0&#41;
&#40;define a2 &#40;plug-in-compose 1 &#40;car a1&#41; d0 &#40;car &#40;cdr a1&#41;&#41; &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41; 0 "HSV"&#41;&#41;
&#40;gimp-display-new &#40;car a2&#41;&#41;&#41;
; Im GIMP und im Menü registrieren
&#40;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&#41;
&#40;script-fu-menu-register "schaerfen"
   "<Toolbox>/Xtns/MeineSkripte/Bilder schärfen"&#41;
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.

User avatar
hastifranki
Posts: 259
Joined: 06. May 2006 19:58

#3 Post by hastifranki »

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: Select all

&#40;define &#40;schaerfen a0 d0&#41;
&#40;define a1 &#40;plug-in-decompose 1 a0 d0 "HSV" 0&#41;&#41;
&#40;plug-in-unsharp-mask 1 &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41; &#40;car &#40;gimp-image-active-drawable &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41;&#41;&#41; 5 0.5 0&#41;
&#40;plug-in-unsharp-mask 1 &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41; &#40;car &#40;gimp-image-active-drawable &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41;&#41;&#41; 5 0.5 0&#41;
&#40;define a2 &#40;plug-in-compose 1 &#40;car a1&#41; d0 &#40;car &#40;cdr a1&#41;&#41; &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41; 0 "HSV"&#41;&#41;
&#40;gimp-display-new &#40;car a2&#41;&#41;
;In Logdatei schreiben&#58;
&#40;define p1 &#40;open-output-file "Gimp_Skript_schaerfen.log"&#41;&#41;
&#40;newline p1&#41;
&#40;write "a0 &#40;Image&#41; &#58; " p1&#41;
&#40;write a0 p1&#41;
&#40;newline p1&#41;
&#40;write "do &#40;Layer&#41; &#58; " p1&#41;
&#40;write d0 p1&#41;
&#40;newline p1&#41;
&#40;write "a1 &#58; " p1&#41;
&#40;write a1 p1&#41;
&#40;newline p1&#41;
&#40;write "a2 &#58; " p1&#41;
&#40;write a2 p1&#41;
&#40;newline p1&#41;
&#40;write "&#40;car &#40;gimp-image-active-drawable &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41;&#41;&#41; &#58;" p1&#41;
&#40;write &#40;car &#40;gimp-image-active-drawable &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41;&#41;&#41; p1&#41;
&#40;newline p1&#41;
&#40;close-output-port p1&#41;
&#41;
; Im GIMP und im Menü registrieren
&#40;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&#41;
&#40;script-fu-menu-register "schaerfen"
   "<Toolbox>/Xtns/MeineSkripte/Bilder schärfen"&#41; 
Viele Grüße
Frank

User avatar
hastifranki
Posts: 259
Joined: 06. May 2006 19:58

#4 Post by hastifranki »

Hallo,

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

Code: Select all

&#40;define &#40;schaerfen a0 d0&#41;
&#40;let* 	&#40;	&#40;a1 &#40;plug-in-decompose 1 a0 d0 "HSV" 0&#41;&#41; &#40;a2 0&#41;
		&#40;d1 &#40;car &#40;gimp-image-active-drawable &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41;&#41;&#41;&#41;
		;Logdatei öffnen
		&#40;p1 &#40;open-output-file "Gimp_Skript_schaerfen.log"&#41;&#41;
	&#41;
	&#40;plug-in-unsharp-mask 1 &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41; d1 5 0.5 0&#41;
	&#40;plug-in-unsharp-mask 1 &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41; d1 5 0.5 0&#41;
	&#40;set! a2 &#40;plug-in-compose 1 &#40;car a1&#41; d1 &#40;car &#40;cdr a1&#41;&#41; &#40;car &#40;cdr &#40;cdr a1&#41;&#41;&#41; 0 "HSV"&#41;&#41;
	;Log schreiben und danach Logdatei schließen&#58;
	&#40;gimp-display-new &#40;car a2&#41;&#41;
	&#40;newline p1&#41; &#40;write "a0 &#40;Image&#41; &#58; " p1&#41; &#40;write a0 p1&#41;
	&#40;newline p1&#41; &#40;write "do &#40;Layer&#41; &#58; " p1&#41; &#40;write d0 p1&#41;
	&#40;newline p1&#41; &#40;write "d1 &#40;Layer&#41; &#58; " p1&#41; &#40;write d1 p1&#41;
	&#40;newline p1&#41; &#40;write "a1 &#58; " p1&#41; &#40;write a1 p1&#41;
	&#40;newline p1&#41; &#40;write "a2 &#58; " p1&#41; &#40;write a2 p1&#41; &#40;newline p1&#41;
	&#40;close-output-port p1&#41;
&#41;&#41;
; Im GIMP und im Menü registrieren
&#40;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&#41;
&#40;script-fu-menu-register "schaerfen"
   "<Toolbox>/Xtns/MeineSkripte/Bilder schärfen"&#41;
VG
Frank

Post Reply