10-23-2022, 04:08 PM 
	
	
	
		Hi all! I've got a bit of a question about scripting. I'm trying to get a script to resize two both layers of an image instead of just the active one, but I'm not entirely sure how to go about doing that. First, I set up the image with this script:
I then do some work with that image and export it. After that, I want to double the width of the image by resizing the canvas. In doing so, I want all the layers to resize as well. Here's what I have so far:
I cut out some extra stuff from both scripts like some codes to add vertical/horizontal guides in various places which all works the way I want it to. Generally, I have the top layer selected when I execute the second script, so the top layer is resized, but the bottom one isn't. I want it to be able to resize both layers to the image size, though, regardless of which one I have actively selected (if it's possible to do so). How do I go about doing that?
	
	
Code:
(define (script-fu-mua-xml2-single-preview)
    (let*
        (
            (theImageWidth  543)
            (theImageHeight 1080)
            (theImage
                (car
                    (gimp-image-new
                        theImageWidth
                        theImageHeight
                        RGB
                    )
                )
            )
            (backgroundLayer
                (car
                    (gimp-layer-new
                        theImage
                        theImageWidth
                        theImageHeight
                        RGBA-IMAGE
                        "Background"
                        100
                        LAYER-MODE-NORMAL
                    )
                )
            )
            (portraitLayer
                (car
                    (gimp-layer-new
                        theImage
                        theImageWidth
                        theImageHeight
                        RGBA-IMAGE
                        "Portraits"
                        100
                        LAYER-MODE-NORMAL
                    )
                )
            )
        )
        (gimp-image-add-layer theImage backgroundLayer 0)
        (gimp-image-add-layer theImage portraitLayer 0)
        (gimp-image-set-active-layer theImage backgroundLayer)
        (gimp-display-new theImage)
    )
)I then do some work with that image and export it. After that, I want to double the width of the image by resizing the canvas. In doing so, I want all the layers to resize as well. Here's what I have so far:
Code:
(define (script-fu-mua-xml2-double-preview image layer)
    (gimp-image-undo-group-start image)
    (gimp-selection-none image)
    (gimp-image-resize image 1086 1080 0 0)
    (gimp-layer-resize-to-image-size layer)
    (gimp-displays-flush)
    (gimp-image-undo-group-end image)
)I cut out some extra stuff from both scripts like some codes to add vertical/horizontal guides in various places which all works the way I want it to. Generally, I have the top layer selected when I execute the second script, so the top layer is resized, but the bottom one isn't. I want it to be able to resize both layers to the image size, though, regardless of which one I have actively selected (if it's possible to do so). How do I go about doing that?
Modder/Skinner at MarvelMods.com using GIMP to create, edit, and export textures and previews more efficiently.
My GIMP scripts hosted on GitHub
	
My GIMP scripts hosted on GitHub


