~ubuntu-branches/ubuntu/jaunty/gimp/jaunty-security

« back to all changes in this revision

Viewing changes to plug-ins/script-fu/scripts/carve-it.scm

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Holbach
  • Date: 2007-05-02 16:33:03 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20070502163303-bvzhjzbpw8qglc4y
Tags: 2.3.16-1ubuntu1
* Resynchronized with Debian, remaining Ubuntu changes:
  - debian/rules: i18n magic.
* debian/control.in:
  - Maintainer: Ubuntu Core Developers <ubuntu-devel@lists.ubuntu.com>
* debian/patches/02_help-message.patch,
  debian/patches/03_gimp.desktop.in.in.patch,
  debian/patches/10_dont_show_wizard.patch: updated.
* debian/patches/04_composite-signedness.patch,
  debian/patches/05_add-letter-spacing.patch: dropped, used upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
 
12
12
(define (carve-brush brush-size)
13
13
  (cond ((<= brush-size 5) "Circle (05)")
14
 
        ((<= brush-size 7) "Circle (07)")
15
 
        ((<= brush-size 9) "Circle (09)")
16
 
        ((<= brush-size 11) "Circle (11)")
17
 
        ((<= brush-size 13) "Circle (13)")
18
 
        ((<= brush-size 15) "Circle (15)")
19
 
        ((<= brush-size 17) "Circle (17)")
20
 
        (else "Circle (19)")))
 
14
        ((<= brush-size 7) "Circle (07)")
 
15
        ((<= brush-size 9) "Circle (09)")
 
16
        ((<= brush-size 11) "Circle (11)")
 
17
        ((<= brush-size 13) "Circle (13)")
 
18
        ((<= brush-size 15) "Circle (15)")
 
19
        ((<= brush-size 17) "Circle (17)")
 
20
        (else "Circle (19)")))
21
21
 
22
22
(define (carve-scale val scale)
23
23
  (* (sqrt val) scale))
24
24
 
25
25
(define (calculate-inset-gamma img layer)
26
26
  (let* ((stats (gimp-histogram layer 0 0 255))
27
 
         (mean (car stats)))
 
27
         (mean (car stats)))
28
28
    (cond ((< mean 127) (+ 1.0 (* 0.5 (/ (- 127 mean) 127.0))))
29
 
          ((>= mean 127) (- 1.0 (* 0.5 (/ (- mean 127) 127.0)))))))
 
29
          ((>= mean 127) (- 1.0 (* 0.5 (/ (- mean 127) 127.0)))))))
30
30
 
31
31
 
32
32
(define (copy-layer-carve-it dest-image dest-drawable source-image source-drawable)
36
36
  (gimp-selection-all source-image)
37
37
  (gimp-edit-copy source-drawable)
38
38
      (let ((floating-sel (car (gimp-edit-paste dest-drawable FALSE))))
39
 
        (gimp-floating-sel-anchor floating-sel)))
 
39
        (gimp-floating-sel-anchor floating-sel)))
40
40
 
41
41
 
42
42
 
43
43
(define (script-fu-carve-it mask-img mask-drawable bg-layer carve-white)
44
 
  (let* ((width (car (gimp-drawable-width mask-drawable)))
45
 
         (height (car (gimp-drawable-height mask-drawable)))
46
 
         (type (car (gimp-drawable-type bg-layer)))
47
 
         (img (car (gimp-image-new width height (cond ((= type RGB-IMAGE) RGB)
48
 
                                                      ((= type RGBA-IMAGE) RGB)
49
 
                                                      ((= type GRAY-IMAGE) GRAY)
50
 
                                                      ((= type GRAYA-IMAGE) GRAY)
51
 
                                                      ((= type INDEXED-IMAGE) INDEXED)
52
 
                                                      ((= type INDEXEDA-IMAGE) INDEXED)))))
53
 
         (size (min width height))
54
 
         (offx (carve-scale size 0.33))
55
 
         (offy (carve-scale size 0.25))
56
 
         (feather (carve-scale size 0.3))
57
 
         (brush-size (carve-scale size 0.3))
58
 
         (mask-fs 0)
59
 
         (mask (car (gimp-channel-new img width height "Engraving Mask" 50 '(0 0 0))))
60
 
         (inset-gamma (calculate-inset-gamma (car (gimp-drawable-get-image bg-layer)) bg-layer))
61
 
         (mask-fat 0)
62
 
         (mask-emboss 0)
63
 
         (mask-highlight 0)
64
 
         (mask-shadow 0)
65
 
         (shadow-layer 0)
66
 
         (highlight-layer 0)
67
 
         (cast-shadow-layer 0)
68
 
         (csl-mask 0)
69
 
         (inset-layer 0)
70
 
         (il-mask 0)
71
 
         (bg-width (car (gimp-drawable-width bg-layer)))
72
 
         (bg-height (car (gimp-drawable-height bg-layer)))
73
 
         (bg-type (car (gimp-drawable-type bg-layer)))
74
 
         (bg-image (car (gimp-drawable-get-image bg-layer)))
75
 
         (layer1 (car (gimp-layer-new img bg-width bg-height bg-type "Layer1" 100 NORMAL-MODE))))
 
44
  (let* (
 
45
        (width (car (gimp-drawable-width mask-drawable)))
 
46
        (height (car (gimp-drawable-height mask-drawable)))
 
47
        (type (car (gimp-drawable-type bg-layer)))
 
48
        (img (car (gimp-image-new width height (cond ((= type RGB-IMAGE) RGB)
 
49
                                                     ((= type RGBA-IMAGE) RGB)
 
50
                                                     ((= type GRAY-IMAGE) GRAY)
 
51
                                                     ((= type GRAYA-IMAGE) GRAY)
 
52
                                                     ((= type INDEXED-IMAGE) INDEXED)
 
53
                                                     ((= type INDEXEDA-IMAGE) INDEXED)))))
 
54
        (size (min width height))
 
55
        (offx (carve-scale size 0.33))
 
56
        (offy (carve-scale size 0.25))
 
57
        (feather (carve-scale size 0.3))
 
58
        (brush-size (carve-scale size 0.3))
 
59
        (mask-fs 0)
 
60
        (mask (car (gimp-channel-new img width height "Engraving Mask" 50 '(0 0 0))))
 
61
        (inset-gamma (calculate-inset-gamma (car (gimp-drawable-get-image bg-layer)) bg-layer))
 
62
        (mask-fat 0)
 
63
        (mask-emboss 0)
 
64
        (mask-highlight 0)
 
65
        (mask-shadow 0)
 
66
        (shadow-layer 0)
 
67
        (highlight-layer 0)
 
68
        (cast-shadow-layer 0)
 
69
        (csl-mask 0)
 
70
        (inset-layer 0)
 
71
        (il-mask 0)
 
72
        (bg-width (car (gimp-drawable-width bg-layer)))
 
73
        (bg-height (car (gimp-drawable-height bg-layer)))
 
74
        (bg-type (car (gimp-drawable-type bg-layer)))
 
75
        (bg-image (car (gimp-drawable-get-image bg-layer)))
 
76
        (layer1 (car (gimp-layer-new img bg-width bg-height bg-type "Layer1" 100 NORMAL-MODE)))
 
77
        )
76
78
 
77
79
    (gimp-context-push)
78
80
 
92
94
    (set! mask-fs (car (gimp-edit-paste mask FALSE)))
93
95
    (gimp-floating-sel-anchor mask-fs)
94
96
    (if (= carve-white FALSE)
95
 
        (gimp-invert mask))
 
97
        (gimp-invert mask))
96
98
 
97
99
    (set! mask-fat (car (gimp-channel-copy mask)))
98
100
    (gimp-image-add-channel img mask-fat 0)
171
173
    (gimp-display-new img)
172
174
    (gimp-image-undo-enable img)
173
175
 
174
 
    (gimp-context-pop)))
 
176
    (gimp-context-pop)
 
177
  )
 
178
)
175
179
 
176
180
(script-fu-register "script-fu-carve-it"
177
 
                    _"C_arve-It..."
178
 
                    "Use the specified [GRAY] drawable as a stencil to carve from the specified image. The specified image must be either RGB colour or grayscale, not indexed."
179
 
                    "Spencer Kimball"
180
 
                    "Spencer Kimball"
181
 
                    "1997"
182
 
                    "GRAY"
183
 
                    SF-IMAGE     "Mask image"        0
184
 
                    SF-DRAWABLE  "Mask drawable"     0
185
 
                    SF-DRAWABLE _"Image to carve"    0
186
 
                    SF-TOGGLE   _"Carve white areas" TRUE)
 
181
    _"Stencil C_arve..."
 
182
    "Use the specified [GRAY] drawable as a stencil to carve from the specified image. The specified image must be either RGB colour or grayscale, not indexed."
 
183
    "Spencer Kimball"
 
184
    "Spencer Kimball"
 
185
    "1997"
 
186
    "GRAY"
 
187
    SF-IMAGE     "Mask image"        0
 
188
    SF-DRAWABLE  "Mask drawable"     0
 
189
    SF-DRAWABLE _"Image to carve"    0
 
190
    SF-TOGGLE   _"Carve white areas" TRUE
 
191
)
187
192
 
188
193
(script-fu-menu-register "script-fu-carve-it"
189
 
                         _"<Image>/Script-Fu/Stencil Ops")
 
194
                         "<Image>/Filters/Decor")