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
 )

_________________________________________________________________

_______________________________________________
Gimp-user mailing list
Gimp-user@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user

Reply via email to