Skript-Fu neues-bild

Aus GIMPForum

Wechseln zu: Navigation, Suche

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)
)
Persönliche Werkzeuge