Hi,
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)
(let*
(
(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)
(begin
(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
0)
; (file-gif-save 1 img16 (car (gimp-image-active-drawable img16))
; "/tmp/x-16.gif" "/tmp/x-16.gif" 0 0 0
0)
; (file-gif-save 1 img224 (car (gimp-image-active-drawable
img224))
; "/tmp/x-224.gif" "/tmp/x-224.gif" 0 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
10)))
(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:
http://www.seul.org/~grumbel/gimp/script-fu/script-fu-tut.html
-----------------------------------------------------------------------
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,
-eleonora
--
Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten
Browser-Versionen downloaden: http://www.gmx.net/de/go/browser
_______________________________________________
Gimp-user mailing list
[email protected]
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user