Arbeitsvereinfachung mit Skript-Fu unter Gimp

Antworten
Nachricht
Autor
Benutzeravatar
hastifranki
Beiträge: 259
Registriert: 06. Mai 2006 19:58

Arbeitsvereinfachung mit Skript-Fu unter Gimp

#1 Beitrag von hastifranki » 24. Jan 2012 21:02

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: Alles auswählen

(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

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#2 Beitrag von Janka » 25. Jan 2012 22:04

Ich biete

Code: Alles auswählen

&#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.

Benutzeravatar
hastifranki
Beiträge: 259
Registriert: 06. Mai 2006 19:58

#3 Beitrag von hastifranki » 26. Jan 2012 11:06

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: Alles auswählen

&#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

Benutzeravatar
hastifranki
Beiträge: 259
Registriert: 06. Mai 2006 19:58

#4 Beitrag von hastifranki » 27. Jan 2012 18:18

Hallo,

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

Code: Alles auswählen

&#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

Antworten