Skript-Fu neues-bild
Aus GIMPForum
Weiter unten für Gimp 2.6.4 angepasst hier Es sind dort alle lokalen Variablen initiiert und die Registrierung funktioniert dort auch.
(define (new-image sfImgname sfWidth sfHeight sfRGBImg sfNumOfPers)
(let*
(;----------Variablendeklaration
(varImg)
(varZaehler 0)
(varActiveLayer)
(varPerson)
(varLayertype)
(varColor
(car (gimp-context-get-foreground))
)
);----------Variablendeklaration Ende
(if (= sfRGBImg TRUE)
(begin
(set! varLayertype 1) ;RGBA-Ebene ist 1 (gimp-layer-new)
;----------RGB-Bild erstellen
(set! varImg
(car
(gimp-image-new
sfWidth
sfHeight
RGB
)
)
)
)
(begin
(set! varLayertype 3) ;GRAYA-Ebene ist 3 (gimp-layer-new)
;----------Graustufen-Bild erstellen
(set! varImg
(car
(gimp-image-new
sfWidth
sfHeight
GRAY
)
)
)
)
)
;---Bild benennen
(gimp-image-set-filename
varImg
sfImgname
)
;---Hintergrundebene erstellen
(set! varActiveLayer
(car
(gimp-layer-new
varImg
sfWidth
sfHeight
varLayertype
"Hintergrund"
100
NORMAL-MODE
)
)
)
;---Ebenen einf�gen
(gimp-image-add-layer
varImg
varActiveLayer
-1
)
;---Hintergrund mit weiss f�llen
(gimp-context-set-foreground '(255 255 255))
(gimp-drawable-fill
varActiveLayer
FOREGROUND-FILL
)
;---Outlineebene f�r Hintergrund erstellen
(set! varActiveLayer
(car
(gimp-layer-new
varImg
sfWidth
sfHeight
varLayertype
"Hintergrund - Outlines"
100
NORMAL-MODE
)
)
)
;---Ebenen einf�gen
(gimp-image-add-layer
varImg
varActiveLayer
-1
)
;---Ebene leerr�umen
(gimp-edit-clear varActiveLayer)
(while (> sfNumOfPers varZaehler)
(set! varPerson
(number->string (+ varZaehler 1))
)
;---Colorationseben erzeugen
(set! varActiveLayer
(car
(gimp-layer-new
varImg
sfWidth
sfHeight
varLayertype
(string-append "Person " varPerson " - Coloration")
100
NORMAL-MODE
)
)
)
;---Ebenen einf�gen
(gimp-image-add-layer
varImg
varActiveLayer
-1
)
;---Ebene leerr�umen
(gimp-edit-clear varActiveLayer)
;---Outlineebene erzeugen
(set! varPerson
(number->string (+ varZaehler 1))
)
(set! varActiveLayer
(car
(gimp-layer-new
varImg
sfWidth
sfHeight
varLayertype
(string-append "Person " varPerson " - Outlines")
100
NORMAL-MODE
)
)
)
;---Ebenen einf�gen
(gimp-image-add-layer
varImg
varActiveLayer
-1
)
;---Ebene leerr�umen
(gimp-edit-clear varActiveLayer)
;---Z�hler erh�hen
(set! varZaehler
(+ varZaehler 1)
)
)
(gimp-context-set-foreground varColor)
(gimp-display-new varImg) ;Bild anzeigen
)
)
(script-fu-register
"new-image"
"Neues Bild erstellen"
"Erstellt ein neues Bild Outline- und Colorationsebene f�r die gew�nschte Anzahl an Personen."
"created by Mohi"
"Du darfst dieses Skript verteilen und veraendern solange der Name des Autors nicht entfernt wird."
"10. August 2008"
""
SF-STRING "Name des Bildes" "Unbenannt"
SF-ADJUSTMENT "Breite" '(1024 1 262144 1 10 0 1)
SF-ADJUSTMENT "Hoehe" '(1024 1 262144 1 10 0 1)
SF-TOGGLE "Farbzeichnung" TRUE
SF-ADJUSTMENT "Anzahl der Personen" '(1 1 10 1 2 0 1)
)
(script-fu-menu-register
"new-image"
"<Toolbox>/File"
)
Gimp 2.6.4
(define (new-image sfImgname sfWidth sfHeight sfRGBImg sfNumOfPers)
(let*
(;----------Variablendeklaration
(varImg 0)
(varZaehler 0)
(varActiveLayer 0)
(varPerson 0)
(varLayertype 0)
(varColor
(car (gimp-context-get-foreground))
)
);----------Variablendeklaration Ende
(if (= sfRGBImg TRUE)
(begin
(set! varLayertype 1) ;RGBA-Ebene ist 1 (gimp-layer-new)
;----------RGB-Bild erstellen
(set! varImg
(car
(gimp-image-new
sfWidth
sfHeight
RGB
)
)
)
)
(begin
(set! varLayertype 3) ;GRAYA-Ebene ist 3 (gimp-layer-new)
;----------Graustufen-Bild erstellen
(set! varImg
(car
(gimp-image-new
sfWidth
sfHeight
GRAY
)
)
)
)
)
;---Bild benennen
(gimp-image-set-filename
varImg
sfImgname
)
;---Hintergrundebene erstellen
(set! varActiveLayer
(car
(gimp-layer-new
varImg
sfWidth
sfHeight
varLayertype
"Hintergrund"
100
NORMAL-MODE
)
)
)
;---Ebenen einf�gen
(gimp-image-add-layer
varImg
varActiveLayer
-1
)
;---Hintergrund mit weiss f�llen
(gimp-context-set-foreground '(255 255 255))
(gimp-drawable-fill
varActiveLayer
FOREGROUND-FILL
)
;---Outlineebene f�r Hintergrund erstellen
(set! varActiveLayer
(car
(gimp-layer-new
varImg
sfWidth
sfHeight
varLayertype
"Hintergrund - Outlines"
100
NORMAL-MODE
)
)
)
;---Ebenen einf�gen
(gimp-image-add-layer
varImg
varActiveLayer
-1
)
;---Ebene leerr�umen
(gimp-edit-clear varActiveLayer)
(while (> sfNumOfPers varZaehler)
(set! varPerson
(number->string (+ varZaehler 1))
)
;---Colorationseben erzeugen
(set! varActiveLayer
(car
(gimp-layer-new
varImg
sfWidth
sfHeight
varLayertype
(string-append "Person " varPerson " - Coloration")
100
NORMAL-MODE
)
)
)
;---Ebenen einf�gen
(gimp-image-add-layer
varImg
varActiveLayer
-1
)
;---Ebene leerr�umen
(gimp-edit-clear varActiveLayer)
;---Outlineebene erzeugen
(set! varPerson
(number->string (+ varZaehler 1))
)
(set! varActiveLayer
(car
(gimp-layer-new
varImg
sfWidth
sfHeight
varLayertype
(string-append "Person " varPerson " - Outlines")
100
NORMAL-MODE
)
)
)
;---Ebenen einf�gen
(gimp-image-add-layer
varImg
varActiveLayer
-1
)
;---Ebene leerr�umen
(gimp-edit-clear varActiveLayer)
;---Z�hler erh�hen
(set! varZaehler
(+ varZaehler 1)
)
)
(gimp-context-set-foreground varColor)
(gimp-display-new varImg) ;Bild anzeigen
)
)
(script-fu-register
"new-image"
_"<Image>/Script-Fu/PKHG/Neues Bild"
"Erstellt ein neues Bild Outline- und Colorationsebene f�r die gew�nschte Anzahl an Personen."
"created by Mohi (angepasst fuer Gimp 2.6.4 durch PKHG)"
"Du darfst dieses Skript verteilen und veraendern solange der Name des Autors nicht entfernt wird."
"10. August 2008"
""
SF-STRING "Name des Bildes" "Unbenannt"
SF-ADJUSTMENT "Breite" '(640 1 262144 1 10 0 1);Anfangswert, Mindestwert, Maxwert, kleiner Schritt, grosser Schritt
;ganze Zahlen(0) oder Fliesskommazahlen(1), Slider (0) oder Rollbox (1)
SF-ADJUSTMENT "Hoehe" '(480 1 262144 1 10 0 1) SF-TOGGLE "Farbzeichnung" TRUE SF-ADJUSTMENT "Anzahl der Personen" '(1 1 10 1 2 0 1) )
