Hi, I checked your script a little. I have to admit, that I don't know scheme very much, because I don't like LISP very much (Lots of Irritating Superfluous Parentheses). I rather work with perl-gimp. But there is an error in your script. Scheme has a built-in function cons. Cons needs two arguments. There is only given one:
(if (= tmp TRUE) (set! viewable (append viewable (cons (aref all-layers (- i 1)))))) To make it clearer: The one argument is: aref all-layers (- i 1) I don't know which argument to give as second. It would take me a while to figure it out. One other thing is disturbing: In the register-function isn't given if it is a stand allone script or if it should work on an image. I assumed it should work on an image. To test your script I set: "<Image>/Script-Fu/_Copy mask" . May be in special cases, the function aref provides twp arguments for cons, for example if you have sufficient layers and layer masks, but in others it doesn*t. Anyhow the error isn't caught. I am working with LINUX, so you see that the error is OS-Independent. Greetings Bernd [EMAIL PROTECTED] schrieb: > Send Gimp-user mailing list submissions to > gimp-user@lists.XCF.Berkeley.EDU > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user > or, via email, send a message with subject or body 'help' to > [EMAIL PROTECTED] > > You can reach the person managing the list at > [EMAIL PROTECTED] > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Gimp-user digest..." > > > Today's Topics: > > 1. script-fu plugin (Adonj Adonj) > 2. Re: script-fu plugin (peter kostov) > 3. Re: Best way to semi-flatten a transparent gif against a > background image (Justyn Butler) > 4. Script-fu (Adonj Adonj) > 5. Re: Best way to semi-flatten a transparent gif against a > background image (David Gowers) > 6. Re: script-fu plugin ([EMAIL PROTECTED]) > 7. Re: Gimp-user Digest, Vol 72, Issue 22 (Mike W) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sun, 28 Sep 2008 00:03:52 -0400 > From: Adonj Adonj <[EMAIL PROTECTED]> > Subject: [Gimp-user] script-fu plugin > To: "gimp-user@lists.XCF.Berkeley.EDU" > <gimp-user@lists.xcf.berkeley.edu> > Message-ID: <[EMAIL PROTECTED]> > Content-Type: text/plain; charset="iso-8859-1" > > > > I'm using gimp2.4.7 in windows XP. I copied a script-fu plugin I found to my > C:\Program Files\GIMP-2.0\lib\gimp\2.0\plug-ins, which should > copy a layer mask to multiple layers or apply a layer mask to multiple > layers. > I get an error each time I make an attempt to use it, which states: > "Error: cons: needs 2 argument(s)" > I'm not familiar with the script. Could there be a simple solution to that? > Here is the script: > > ; This program is free software; you can redistribute it and/or modify > ; it under the terms of the GNU General Public License as published by > ; the Free Software Foundation; either version 2 of the License, or > ; (at your option) any later version. > ; > ; This program is distributed in the hope that it will be useful, > ; but WITHOUT ANY WARRANTY; without even the implied warranty of > ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > ; GNU General Public License for more details. > (define (script-fu-copy-mask-to-layers image drawable) > (define (visible-layers img) > (let* ( > (all-layers (gimp-image-get-layers img)) > (i (car all-layers)) > (viewable ()) > (tmp FALSE)) > (set! all-layers (cadr all-layers)) > (while (> i 0) > (set! tmp (car (gimp-drawable-get-visible (aref > all-layers (- i 1))))) > (if (= tmp TRUE) > (set! viewable (append viewable (cons (aref all-layers > (- i 1)))))) > (set! i (- i 1))) > viewable)) > (let* ( > (active-layer (car (gimp-image-get-active-layer image))) > (source-layer) > (source-mask) > (layers) > (mask)) > (set! layers (visible-layers image)) > (gimp-image-undo-group-start image) > (set! source-layer (car (gimp-layer-new-from-drawable > active-layer image))) > (gimp-image-add-layer image source-layer -1) > (set! source-mask (car (gimp-layer-get-mask source-layer))) > (if (= source-mask -1) > (begin > (set! source-mask (car (gimp-layer-create-mask > source-layer ADD-COPY-MASK))) > (gimp-layer-add-mask source-layer source-mask))) > (while (car layers) > (if (= (car (gimp-layer-get-mask (car layers))) -1) > (if (= (car (gimp-drawable-has-alpha (car layers))) 1) > (set! mask (car (gimp-layer-add-mask (car layers) > source-mask))))) > (set! layers (cdr layers))) > (gimp-image-remove-layer image source-layer) > (gimp-image-undo-group-end image) > (gimp-displays-flush))) > (script-fu-register "script-fu-copy-mask-to-layers" > "/Script-Fu/_Copy mask" > "Copy the mask from the current layer to all visible layers" > "Saul Goode" > "Saul Goode" > "6/14/2006" > "" > SF-IMAGE "Image" 0 > SF-DRAWABLE "Drawable" 0 > ) > > _________________________________________________________________ > > > > ------------------------------ > > Message: 2 > Date: Sun, 28 Sep 2008 11:28:50 +0300 > From: peter kostov <[EMAIL PROTECTED]> > Subject: Re: [Gimp-user] script-fu plugin > To: Adonj Adonj <[EMAIL PROTECTED]> > Cc: "gimp-user@lists.XCF.Berkeley.EDU" > <gimp-user@lists.xcf.berkeley.edu> > Message-ID: <[EMAIL PROTECTED]> > Content-Type: text/plain; charset=UTF-8; format=flowed > > Adonj Adonj wrote: > >> I'm using gimp2.4.7 in windows XP. I copied a script-fu plugin I found to my >> C:\Program Files\GIMP-2.0\lib\gimp\2.0\plug-ins, which should >> copy a layer mask to multiple layers or apply a layer mask to multiple >> layers. >> I get an error each time I make an attempt to use it, which states: >> "Error: cons: needs 2 argument(s)" >> I'm not familiar with the script. Could there be a simple solution to that? >> Here is the script: >> >> ; This program is free software; you can redistribute it and/or modify >> ; it under the terms of the GNU General Public License as published by >> ; the Free Software Foundation; either version 2 of the License, or >> ; (at your option) any later version. >> ; >> ; This program is distributed in the hope that it will be useful, >> ; but WITHOUT ANY WARRANTY; without even the implied warranty of >> ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> ; GNU General Public License for more details. >> (define (script-fu-copy-mask-to-layers image drawable) >> (define (visible-layers img) >> (let* ( >> (all-layers (gimp-image-get-layers img)) >> (i (car all-layers)) >> (viewable ()) >> (tmp FALSE)) >> (set! all-layers (cadr all-layers)) >> (while (> i 0) >> (set! tmp (car (gimp-drawable-get-visible (aref >> all-layers (- i 1))))) >> (if (= tmp TRUE) >> (set! viewable (append viewable (cons (aref all-layers >> (- i 1)))))) >> (set! i (- i 1))) >> viewable)) >> (let* ( >> (active-layer (car (gimp-image-get-active-layer image))) >> (source-layer) >> (source-mask) >> (layers) >> (mask)) >> (set! layers (visible-layers image)) >> (gimp-image-undo-group-start image) >> (set! source-layer (car (gimp-layer-new-from-drawable >> active-layer image))) >> (gimp-image-add-layer image source-layer -1) >> (set! source-mask (car (gimp-layer-get-mask source-layer))) >> (if (= source-mask -1) >> (begin >> (set! source-mask (car (gimp-layer-create-mask >> source-layer ADD-COPY-MASK))) >> (gimp-layer-add-mask source-layer source-mask))) >> (while (car layers) >> (if (= (car (gimp-layer-get-mask (car layers))) -1) >> (if (= (car (gimp-drawable-has-alpha (car layers))) 1) >> (set! mask (car (gimp-layer-add-mask (car layers) >> source-mask))))) >> (set! layers (cdr layers))) >> (gimp-image-remove-layer image source-layer) >> (gimp-image-undo-group-end image) >> (gimp-displays-flush))) >> (script-fu-register "script-fu-copy-mask-to-layers" >> "/Script-Fu/_Copy mask" >> "Copy the mask from the current layer to all visible layers" >> "Saul Goode" >> "Saul Goode" >> "6/14/2006" >> "" >> SF-IMAGE "Image" 0 >> SF-DRAWABLE "Drawable" 0 >> ) >> >> > Isn't that a script rather a plug-in? If so it should reside in the > scripts folder... But this is gust a guess. I am not familiar with > script-fu eithe :( > > Peter > >> _________________________________________________________________ >> >> _______________________________________________ >> Gimp-user mailing list >> Gimp-user@lists.XCF.Berkeley.EDU >> https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user >> >> > > > _______________________________________________ Gimp-user mailing list Gimp-user@lists.XCF.Berkeley.EDU https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user