I try to write a gimp-fu script to save the current image as a gif.
I found a sample script on the web that seems to fit:
(define (script-fu-glogo-simple2 srcimg dummy filename)
                        (img2   (car (gimp-channel-ops-duplicate srcimg)))
                        (img16  (car (gimp-channel-ops-duplicate srcimg)))
                        (img224 (car (gimp-channel-ops-duplicate srcimg)))
                        (drawa  (car (gimp-image-active-drawable srcimg)))
                        (drcol  (car (gimp-drawable-color drawa)))
                ; Set names to the images (debug-info)
                (gimp-image-set-filename img2   "glogo-bw")
                (gimp-image-set-filename img16  "glogo-16")
                (gimp-image-set-filename img224 "glogo-224")
                ; Resize (i.e. scale) them all
                (gimp-image-scale img2   80 80)
                (gimp-image-scale img16  80 80)
                (gimp-image-scale img224 80 80)
                ; Convert them to RGB if they are not
                (if (= drcol 0)
                                (gimp-convert-rgb img2)
                                (gimp-convert-rgb img16)
                                (gimp-convert-rgb img224)
                ; Flatten it
                (gimp-image-flatten img2)
                (gimp-image-flatten img16)
                (gimp-image-flatten img224)
                ; Now change the palletes
                (gimp-convert-indexed-palette img2   1 3 0   "")
                (gimp-convert-indexed-palette img16  1 0 16  "")
                (gimp-convert-indexed-palette img224 1 0 224 "")
                ; Save it as gifs (not needed anymore)
;               (file-gif-save 1 img2   (car (gimp-image-active-drawable img2))
;                                       "/tmp/x-2.gif"   "/tmp/x-2.gif"   0 0 0 
;               (file-gif-save 1 img16  (car (gimp-image-active-drawable img16))
;                                       "/tmp/x-16.gif"  "/tmp/x-16.gif"  0 0 0 
;               (file-gif-save 1 img224 (car (gimp-image-active-drawable 
;                                       "/tmp/x-224.gif" "/tmp/x-224.gif" 0 0 0 
                ; Save it as linux boot logo
;               (gimp-message (string-append "Debug-Info: img2=" 
(number->string img2 10)
;                                            " img16=" (number->string img16 10)
;                                            " img224=" (number->string img224 
                (extension-linux-logo 1 filename
                                      (car (gimp-image-active-drawable img2))
                                      (car (gimp-image-active-drawable img16))
                                      (car (gimp-image-active-drawable img224)) 
                ; Free the images
                (gimp-image-delete img2)
                (gimp-image-delete img16)
                (gimp-image-delete img224)

(script-fu-register "script-fu-glogo-simple2"
        "<Image>/Script-Fu/Save as Linux Boot Logo2"
        "Saves any given image as Linux Boot Logo2"
        "Clifford Wolf"
        "Clifford Wolf"
        "Aug 1998"
        SF-IMAGE "Image to Glogo Simple" 0
        SF-DRAWABLE "Drawable to Glogo Simple" 0
        SF-VALUE "File Name" "/tmp/x.gif"
(In the script file-gif-save is commented out, 
it fails at refresh, if not commented out)

However when I run this script I get following error message:
Script-Fu error when executing (script-fu-glogo-simple2 35 219 /tmp/x.gif
Error: unbound variable (errobj /tmp/x.gif)

I found in the tutorial following hint:
You might also want to open a directory and open all the images in it. Not even 
that is possible. The SIOD webpage describes the opendir function, but when you 
try it in Script-Fu it will not work as many other SIOD function.
=> (opendir "/")
ERROR: unbound variable (errobj opendir)
To solve this you have to work-around this by dumping the directory contents to 
a file and read that file instead, or you can write a Perl-Fu, Python-Fu or a 
Gimp Plug-in.

Does this mean, I will never be able to save any files in script-fu?

I have no chance to use perl or python, because perl needs gimptool, I do not
have, and python for gimp tool can not be found on the web.

Thanks in advance for any hint,

Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten 
Browser-Versionen downloaden: http://www.gmx.net/de/go/browser
Gimp-user mailing list

Reply via email to