Konfussion mkit einem Script-Fu Script

Hier bekommst du Hilfestellungen zu GIMP
Antworten
CreCo::ThomasLahme
Beiträge: 1
Registriert: Mo 19. Apr 2021, 17:53
Betriebssystem: Linux Ubuntu Studio

Konfussion mkit einem Script-Fu Script

Beitrag von CreCo::ThomasLahme »

Liebe Community,
Wie gesagt, erlerne ich gersde das Scripten mit Script-Fu in GIMP
Nach dem ich doch noch das Einbinden meines leeren Scriptes ordentlich geschaft hat.

Habe ich mir folgendes kleines Script gebastelt / zusammen gereimt:

Code: Alles auswählen

(define (script-fu-Mondrian) (gimp-message "Und meine Function läuft" ) ( mondrian-make-Canvas))

(define (mondrian-make-Canvas) 
    (let* ( 
        (canvas-dx 300)
        (canvas-dy 200)
        (image (car (gimp-image-new canvas-dx canvas-dy RGB)))
        (layer (car (gimp-layer-new image canvas-dx canvas-dy RGB-IMAGE "Proj1" 100 0)))
        )
        (gimp-image-add-layer image layer 0)
        (gimp-display-new image)
        (gimp-message (string-append "Test:" (number->string canvas-dx) "x" (number->string canvas-dy)))
        (mondrian-paint-image layer image)
    )
    )

(define (mondrian-paint-image layer image)
    (
    (mondrian_paint_backgroud layer image)
    ))

(define (mondrian_paint_backgroud layer image)
    (
    (gimp-context-set-background '(0 0 122))
    (gimp-drawable-fill layer FILL-BACKGROUND)
    (gimp-message "tetanus")
    (gimp-display-new image)
    ))
    
    
  (script-fu-register
    "script-fu-Mondrian"                        ;func name
    "Create a Mondrian"                                  ;menu label
    "This is my first script-fu Script \
     It draws a Mondrian like Image"              ;description
    "Thomas Lahme"                             ;author
    "Copyright:: Its under the GPL"        ;copyright notice
    "19 April 2021"                          ;date created
    ""                     ;image type that the script works on
    SF-ADJUSTMENT  "Granularity"     '(50 1 1000 1 10 0 1)
   )
  (script-fu-menu-register "script-fu-Mondrian" "<Image>/Mondrian")
      
Mein kleines Problem besteht darin dass die Funktionen sich scheinbar Top-Down
ordentlich auffruffen. Nur kehrt das Script nicht um, und stattdessen erscheint
eine Fehler-Meldung dass eine illegalle Funktion geruffen wurde.

Da ich nun vollkommen auf dem Feuerwehr-Schlauch steh.

Kann mir BITTE jemand HELFEN dieses Problem zu lösen

Ein etwas Konfuser

Thomas Lahme
CreCo
Benutzeravatar
Gimplyworxs
Beiträge: 2690
Registriert: Sa 22. Aug 2020, 09:11
Wohnort: Crailsheim, BaWü
Deine Galerie: https://gimp-werkstatt.de/werkstatt-galerie/gimplyworxs
Betriebssystem: Linux Mint 20.1 MATE

Re: Konfussion mkit einem Script-Fu Script

Beitrag von Gimplyworxs »

HAllo CreCo::ThomasLahme ,

ich werd's mir im Lauf des Tages mal anschauen.
Bin schon ne Weile aus dem Script-Fu Zeugs raus ... diese Klammerorgien von dem waren nie so meins.
Es ist doch erheblich leichter und übersichtlicher mit Python.
Mal schauen, was sich machen läßt.
Viele Grüße
Gimplyworxs

Bild
Benutzeravatar
Gimplyworxs
Beiträge: 2690
Registriert: Sa 22. Aug 2020, 09:11
Wohnort: Crailsheim, BaWü
Deine Galerie: https://gimp-werkstatt.de/werkstatt-galerie/gimplyworxs
Betriebssystem: Linux Mint 20.1 MATE

Re: Konfussion mkit einem Script-Fu Script

Beitrag von Gimplyworxs »

so.... ich denke mal, so läuft es:

Code: Alles auswählen

(define (script-fu-Mondrian Granularity)
    (gimp-message "Und meine Function läuft" )
;        ( mondrian-make-Canvas)
;)

;(define (mondrian-make-Canvas)
    (let* (
        (canvas-dx 300)
        (canvas-dy 200)
        (image (car (gimp-image-new canvas-dx canvas-dy RGB)))
        (layer (car (gimp-layer-new image canvas-dx canvas-dy RGB-IMAGE "Proj1" 100 0)))
        )
        (gimp-image-add-layer image layer 0)
        ;(gimp-display-new image)
        (gimp-message (string-append "Test:" (number->string canvas-dx) "x" (number->string canvas-dy)))
;        (mondrian-paint-image layer image)
        (gimp-context-set-background '(0 0 122))
        (gimp-drawable-fill layer FILL-BACKGROUND)
        (gimp-message "tetanus")
        (gimp-display-new image)


    )
)

; (define (mondrian-paint-image layer image)
;     (
;     (mondrian_paint_backgroud layer image)
;     ))
;
; (define (mondrian_paint_backgroud layer image)
;     (
;
;     ))


  (script-fu-register "script-fu-Mondrian"                        ;func name
    "Create a Mondrian"                                  ;menu label
    "This is my first script-fu Script It draws a Mondrian like Image"              ;description
    "Thomas Lahme"                             ;author
    "Copyright Its under the GPL"        ;copyright notice
    "19 April 2021"                          ;date created
    ""                     ;image type that the script works on
    SF-ADJUSTMENT  "Granularity"     '(50 1 1000 1 10 0 1)
   )
  (script-fu-menu-register "script-fu-Mondrian" "<Image>/Mondrian")

Zu deinen Fragen:
Warum es nicht "zurück" kam? weil du zwimal gimp-display-new drin hattest. Dann macht GIMP das halt auch.
Normalerweise displayed man erst am Ende

Und die illegal function kam unten im Bereich Registrierung vom Zeilenumbruch und \ Zeichen.

Ich hoffe mal, du kommst soweit klar.
Es ist nicht notwendig, daß du für alles eine extra Funktion definierst. Variablen, die du einmal mit let gesetzt hast, kannst du später mit set ändern.



Ein wie ich finde sehr übersichtliches Script zum sich Sachen abschauen (auch wenn es recht lang und umfangreich ist) gibt's z.B. hier:
https://gimplearn.net/viewtopic.php?f=4&t=517
Gleich im ersten Beitrag, Green_Apple.zip

Oder auch bei der GIMP Entwicklerin Akkana Peck hier: https://github.com/akkana/gimp-plugins/ ... oworld.scm


Aber wie schon gesagt ... auf lange Sicht tust du dich deutlich einfacher mit Python .... dafür findest du auch viel mehr Doku und Leute, die dir weiterhelfen können. Script-Fu macht ja heutzutage kaum wer.
Viele Grüße
Gimplyworxs

Bild
Benutzeravatar
Gimplyworxs
Beiträge: 2690
Registriert: Sa 22. Aug 2020, 09:11
Wohnort: Crailsheim, BaWü
Deine Galerie: https://gimp-werkstatt.de/werkstatt-galerie/gimplyworxs
Betriebssystem: Linux Mint 20.1 MATE

Re: Konfussion mkit einem Script-Fu Script

Beitrag von Gimplyworxs »

Eine kurze Rückmeldung wäre schön,
auch wenn du inzwischen offensichtlich woanders eine Lösung gefunden hast.
Viele Grüße
Gimplyworxs

Bild
Antworten