summaryrefslogtreecommitdiffstats
path: root/plug-ins/script-fu/scripts/erase-rows.scm
blob: 4ae4c770ab6a5e3633181698f98c00af259263d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
(define (script-fu-erase-rows img drawable orientation which type)
  (script-fu-erase-nth-rows img drawable orientation which type 2)
)

(define (script-fu-erase-nth-rows img drawable orientation offset type nth)
  (let* (
        (width (car (gimp-drawable-width drawable)))
        (height (car (gimp-drawable-height drawable)))
        (position-x (car (gimp-drawable-offsets drawable)))
        (position-y (cadr (gimp-drawable-offsets drawable)))
        )

    (gimp-context-push)
    (gimp-context-set-paint-mode LAYER-MODE-NORMAL)
    (gimp-context-set-opacity 100.0)
    (gimp-context-set-feather FALSE)
    (gimp-image-undo-group-start img)
    (letrec ((loop (lambda (i max)
                     (if (< i max)
                         (begin
                           (if (= orientation 0)
                               (gimp-image-select-rectangle img CHANNEL-OP-REPLACE position-x (+ i position-y) width 1)
                               (gimp-image-select-rectangle img CHANNEL-OP-REPLACE (+ i position-x) position-y 1 height))
                           (if (= type 0)
                               (gimp-drawable-edit-clear drawable)
                               (gimp-drawable-edit-fill drawable FILL-BACKGROUND))
                           (loop (+ i nth) max))))))
      (loop offset
            (if (= orientation 0)
                height
                width)
      )
    )
    (gimp-selection-none img)
    (gimp-image-undo-group-end img)
    (gimp-context-pop)
    (gimp-displays-flush)
  )
)

(script-fu-register "script-fu-erase-nth-rows"
  _"_Erase Every Nth Row..."
  _"Erase every nth row or column"
  "Federico Mena Quintero, Nikc M. (Altered)"
  "Federico Mena Quintero"
  "June 1997, February 2020"
  "RGB* GRAY* INDEXED*"
  SF-IMAGE       "Image"      0
  SF-DRAWABLE    "Drawable"   0
  SF-OPTION     _"Rows/cols"  '(_"Rows" _"Columns")
  SF-ADJUSTMENT  "Offset"     '(0 0 1024 1 10 0 SF-SPINNER)
  SF-OPTION     _"Erase/fill" '(_"Erase" _"Fill with BG")
  SF-ADJUSTMENT  "Skip by"    '(1 1 1024 1 10 0 SF-SPINNER)
)

(script-fu-register "script-fu-erase-rows"
  _"_Erase Every Other Row..."
  _"Erase every other row or column"
  "Federico Mena Quintero"
  "Federico Mena Quintero"
  "June 1997"
  "RGB* GRAY* INDEXED*"
  SF-IMAGE    "Image"      0
  SF-DRAWABLE "Drawable"   0
  SF-OPTION  _"Rows/cols"  '(_"Rows" _"Columns")
  SF-OPTION  _"Even/odd"   '(_"Even" _"Odd")
  SF-OPTION  _"Erase/fill" '(_"Erase" _"Fill with BG")
)

; (script-fu-menu-register "script-fu-erase-rows"
;                          "<Image>/Filters/Distorts")