Quoting Dillon <dillonontheco...@gmail.com>: > The reason I'm writing my own script-fu, rather than using Daves Batch > Processor, is that my TIF files are multi-page, and when I load the image > and flatten it to a drawable, I end up with both pages flattened into one > drawable. I only want one of the pages (I think the first). > > I need to find a way to select that page (which I assume is turned into a > layer when the TIF is loaded), and just set that layer to be my drawable.
In that case, you were on the right track originally with using 'gimp-image-get-layers' (I am also assuming multi-page TIFFs load as separate layers). However, you had incorrectly handled the value returned by the function. 'gimp-image-get-layers' returns returns a list containing two elements: the number of layers in the image and an array of the layerIDs of those layers: (set! num-layers (car (gimp-image-get-layers image))) (set! layerIDs (cadr (gimp-image-get-layers image))) You can obtain the layerID of the top layer with: (set! top-layer (vector-ref layerIDs 0)) The next down with: (set! next-layer (vector-ref layerIDs 1)) And so on: (set! bottom-layer (vector-ref layerIDs (- num-layers 1))) If you know the position of the layer you wish to keep (the TIFF page), you can then remove all of the other layers from the image with: (set! pos 0) (while (< pos num-layers) (unless (= pos TIFFpage) (gimp-image-remove-layer image (vector-ref layerIDs pos)) ) (set! i (+ i 1)) ) _______________________________________________ Gimp-user mailing list Gimp-user@lists.XCF.Berkeley.EDU https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-user