Skip to content

Commit 46a52f7

Browse files
committed
0.20250206: scheme: SUBTRACT-MODE
1 parent 980e049 commit 46a52f7

File tree

1 file changed

+49
-32
lines changed

1 file changed

+49
-32
lines changed

scheme/resize-ris.scm

Lines changed: 49 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
1+
;
2+
; (gimp-layer-set-mode layer-copy SCREEN-MODE)
3+
; NORMAL-MODE 0
4+
; DISSOLVE-MODE 1
5+
; BEHIND-MODE 2
6+
; MULTIPLY-MODE 3
7+
; SCREEN-MODE 4
8+
; OVERLAY-MODE 5
9+
; DIFFERENCE 6
10+
; ADDITION-MODE 7
11+
; SUBTRACT-MODE 8
12+
; DARKEN-ONLY-MODE 9
13+
; LIGHTEN-ONLY-MODE10
14+
; HUE-MODE 11
15+
; SATURATION-MODE 12
16+
; COLOR-MODE 13
17+
; VALUE-MODE 14
18+
; DIVIDE-MODE 15
19+
; DODGE-MODE 16
20+
; BURN-MODE 17
21+
; HARDLIGHT-MODE 18
22+
; SOFTLIGHT-MODE 19
23+
; GRAIN-EXTRACT-MODE 20
24+
; GRAIN-MERGE-MODE 21
25+
; COLOR-ERASE-MODE 12
26+
127
(define (resize-ris image
228
drawable
329
newwidth
@@ -8,46 +34,37 @@
834
(drawable (car (gimp-image-active-drawable image)))
935
(oldwidth (car (gimp-image-width image)))
1036
(oldheight (car (gimp-image-height image)))
37+
(layer-copy (car (gimp-layer-copy drawable TRUE)))
38+
(layer-defect (car (gimp-layer-copy drawable TRUE)))
1139
(new-layer-1 (car (gimp-layer-copy drawable TRUE)))
1240
(new-layer-2 (car (gimp-layer-copy drawable TRUE)))
1341
(new-layer-3 (car (gimp-layer-copy drawable TRUE)))
1442
)
1543

1644
(gimp-image-undo-group-start image)
1745

18-
(gimp-image-insert-layer image new-layer-1 0 -1)
19-
(gimp-image-insert-layer image new-layer-2 0 -1)
20-
(gimp-layer-set-mode new-layer-2 LAYER-MODE-MULTIPLY-LEGACY)
21-
(set! new-layer-1 (car (gimp-image-merge-down image new-layer-2 EXPAND-AS-NECESSARY)))
46+
(gimp-context-set-interpolation method)
2247

23-
(cond
24-
((= method 0)
25-
(gimp-context-set-interpolation INTERPOLATION-CUBIC)
26-
)
27-
((= method 1)
28-
(gimp-context-set-interpolation INTERPOLATION-NONE)
29-
)
30-
((= method 2)
31-
(gimp-context-set-interpolation INTERPOLATION-LINEAR)
32-
)
33-
((= method 3)
34-
(gimp-context-set-interpolation INTERPOLATION-CUBIC)
35-
)
36-
((= method 4)
37-
(gimp-context-set-interpolation INTERPOLATION-NOHALO)
38-
)
39-
((= method 5)
40-
(gimp-context-set-interpolation INTERPOLATION-LOHALO)
41-
)
42-
)
48+
(gimp-image-insert-layer image layer-copy 0 -1)
49+
(gimp-image-insert-layer image layer-defect 0 -1)
50+
(gimp-layer-scale layer-defect newwidth newheight TRUE)
51+
(gimp-layer-scale layer-defect oldwidth oldheight TRUE)
4352

53+
(set! new-layer-1 (car (gimp-layer-copy layer-copy TRUE)))
54+
(set! new-layer-2 (car (gimp-layer-copy layer-copy TRUE)))
55+
(set! new-layer-3 (car (gimp-layer-copy layer-defect TRUE)))
56+
(gimp-image-insert-layer image new-layer-1 0 -1)
57+
(gimp-image-insert-layer image new-layer-2 0 -1)
4458
(gimp-image-insert-layer image new-layer-3 0 -1)
45-
(gimp-layer-scale new-layer-3 newwidth newheight TRUE)
46-
(gimp-layer-scale new-layer-3 oldwidth oldheight TRUE)
47-
48-
(gimp-layer-set-mode new-layer-3 LAYER-MODE-DIVIDE-LEGACY)
49-
(set! new-layer-1 (car (gimp-image-merge-down image new-layer-3 EXPAND-AS-NECESSARY)))
50-
(gimp-item-set-name new-layer-1 "RIS")
59+
(gimp-layer-set-mode new-layer-1 SUBTRACT-MODE)
60+
(set! layer-defect (car (gimp-image-merge-down image new-layer-1 EXPAND-AS-NECESSARY)))
61+
(gimp-layer-set-mode new-layer-3 SUBTRACT-MODE)
62+
(set! new-layer-2 (car (gimp-image-merge-down image new-layer-3 EXPAND-AS-NECESSARY)))
63+
(gimp-layer-set-mode layer-defect SUBTRACT-MODE)
64+
(set! layer-copy (car (gimp-image-merge-down image layer-defect EXPAND-AS-NECESSARY)))
65+
(gimp-layer-set-mode new-layer-2 ADDITION-MODE)
66+
(set! layer-copy (car (gimp-image-merge-down image new-layer-2 EXPAND-AS-NECESSARY)))
67+
(gimp-item-set-name layer-copy "RIS")
5168

5269
(gimp-image-scale image newwidth newheight)
5370

@@ -62,13 +79,13 @@
6279
"Resize used RIS (Reverse Interpolate Scale)"
6380
"zvezdochiot https://github.com/zvezdochiot"
6481
"This is free and unencumbered software released into the public domain."
65-
"2025-02-05"
82+
"2025-02-06"
6683
"*"
6784
SF-IMAGE "Image" 0
6885
SF-DRAWABLE "Drawable" 0
6986
SF-VALUE "Width" "1024"
7087
SF-VALUE "Height" "1024"
71-
SF-OPTION "Method" '("Cubic" "None" "Linear" "Cubic" "NoHalo" "LowHalo")
88+
SF-ENUM "Method" '("InterpolationType" "cubic" "none" "linear" "cubic" "nohalo" "lohalo")
7289
)
7390

7491
(script-fu-menu-register "resize-ris" "<Image>/Image/Transform")

0 commit comments

Comments
 (0)