Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Resize used RIS.
#7
Hi all.

Draft script used SUBTRACT-MODE:
Code:
(define (resize-ris image
                    drawable
                    newwidth
                    newheight
                    method)
    (let*
        (
            (drawable  (car (gimp-image-active-drawable image)))
            (oldwidth  (car (gimp-image-width image)))
            (oldheight (car (gimp-image-height image)))
            (layer-copy (car (gimp-layer-copy drawable TRUE)))
            (layer-defect (car (gimp-layer-copy drawable TRUE)))
            (new-layer-1 (car (gimp-layer-copy drawable TRUE)))
            (new-layer-2 (car (gimp-layer-copy drawable TRUE)))
            (new-layer-3 (car (gimp-layer-copy drawable TRUE)))
        )
    
        (gimp-image-undo-group-start image)
    
        (gimp-context-set-interpolation method)

        (gimp-image-insert-layer image layer-copy 0 -1)
        (gimp-image-insert-layer image layer-defect 0 -1)
        (gimp-layer-scale layer-defect newwidth newheight TRUE)
        (gimp-layer-scale layer-defect oldwidth oldheight TRUE)

        (set! new-layer-1 (car (gimp-layer-copy layer-copy TRUE)))
        (set! new-layer-2 (car (gimp-layer-copy layer-copy TRUE)))
        (set! new-layer-3 (car (gimp-layer-copy layer-defect TRUE)))
        (gimp-image-insert-layer image new-layer-1 0 -1)
        (gimp-image-insert-layer image new-layer-2 0 -1)
        (gimp-image-insert-layer image new-layer-3 0 -1)
        (gimp-layer-set-mode new-layer-1 SUBTRACT-MODE)
        (set! layer-defect (car (gimp-image-merge-down image new-layer-1 EXPAND-AS-NECESSARY)))
        (gimp-layer-set-mode new-layer-3 SUBTRACT-MODE)
        (set! new-layer-2 (car (gimp-image-merge-down image new-layer-3 EXPAND-AS-NECESSARY)))
        (gimp-layer-set-mode layer-defect SUBTRACT-MODE)
        (set! layer-copy (car (gimp-image-merge-down image layer-defect EXPAND-AS-NECESSARY)))
        (gimp-layer-set-mode new-layer-2 ADDITION-MODE)
        (set! layer-copy (car (gimp-image-merge-down image new-layer-2 EXPAND-AS-NECESSARY)))
        (gimp-item-set-name layer-copy "RIS")

        (gimp-image-scale image newwidth newheight)

        (gimp-displays-flush)
        
        (gimp-image-undo-group-end image)
    )
)

(script-fu-register "resize-ris"
                    "_Resize RIS"
                    "Resize used RIS (Reverse Interpolate Scale)"
                    "zvezdochiot https://github.com/zvezdochiot"
                    "This is free and unencumbered software released into the public domain."
                    "2025-02-06"
                    "*"
                    SF-IMAGE       "Image"       0
                    SF-DRAWABLE    "Drawable"    0
                    SF-VALUE       "Width"       "1024"
                    SF-VALUE       "Height"      "1024"
                    SF-ENUM        "Method"      '("InterpolationType" "cubic" "none" "linear" "cubic" "nohalo" "lohalo")
)

(script-fu-menu-register "resize-ris" "<Image>/Image/Transform")
The code is published in https://github.com/ImageProcessing-Elect...resize-ris .
Reply


Messages In This Thread
Resize used RIS. - by zvezdochiot - 02-02-2025, 04:36 PM
RE: Resize used RIS. - by Ofnuts - 02-03-2025, 07:39 AM
RE: Resize used RIS. - by denzjos - 02-03-2025, 10:11 AM
RE: Resize used RIS. - by zvezdochiot - 02-03-2025, 01:05 PM
RE: Resize used RIS. - by zvezdochiot - 02-05-2025, 11:21 PM
RE: Resize used RIS. - by zvezdochiot - 02-06-2025, 01:45 AM
RE: Resize used RIS. - by zvezdochiot - 02-06-2025, 01:25 PM

Forum Jump: