File: chip-away.scm

package info (click to toggle)
gimp 2.2.13-1etch4
  • links: PTS
  • area: main
  • in suites: etch
  • size: 94,832 kB
  • ctags: 47,113
  • sloc: ansic: 524,858; xml: 36,798; lisp: 9,870; sh: 9,409; makefile: 7,923; python: 2,674; perl: 2,589; yacc: 520; lex: 334
file content (193 lines) | stat: -rw-r--r-- 6,964 bytes parent folder | download | duplicates (3)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
; The GIMP -- an image manipulation program
; Copyright (C) 1995 Spencer Kimball and Peter Mattis
;
;  Supposed to look vaguely like roughly carved wood. Chipped away if you will.
;
;  Options: Text String -  the string to make the logo from
;           Font        -  which font to use
;           Font Size   -  how big
;           Chip Amount - how rought he chipping is (how spread the bump map is)
;           Blur Amount - the bump layer is blurred slighty by this amount
;           Invert      - whether or not to invert the bumpmap (gives a carved in feel)
;           Drop Shadow - whether or not to draw a drop shadow
;           Keep bump layer? - whether to keep the layer used as the bump map
;           fill bg with pattern? - whether to fill the background with the pattern or leave it white
;           Keep Backgroun - whether or not to remove the background layer
;
;  Adrian Likins  (Adrian@gimp.org)
;  Jan 11, 1998 v1
;
;  see http://www.gimp.org/~adrian/script.html
;
; This program is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 2 of the License, or
; (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program; if not, write to the Free Software
; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
;
;  Some suggested patterns: Dried mud, 3D green, Slate
;

(define (apply-chip-away-logo-effect img
				     logo-layer
				     spread-amount
				     blur-amount
				     invert
				     drop-shadow
				     keep-bump
				     bg-fill
				     keep-back
				     pattern)
  (let* ((width (car (gimp-drawable-width logo-layer)))
	 (height (car (gimp-drawable-height logo-layer)))
	 (bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
	 (bump-layer (car (gimp-layer-new img width height RGBA-IMAGE "Bump Layer" 100 NORMAL-MODE))))

    (gimp-context-push)

    (script-fu-util-image-resize-from-layer img logo-layer)
    (gimp-image-add-layer img bg-layer 1)
    (gimp-layer-set-preserve-trans logo-layer TRUE)
    (gimp-context-set-pattern pattern)

    (gimp-context-set-background '(255 255 255))
    (gimp-selection-all img)

    (if (= bg-fill TRUE)
	(gimp-edit-bucket-fill bg-layer 2 NORMAL-MODE 100 255 FALSE 1 1)
	(gimp-edit-fill bg-layer BACKGROUND-FILL))

    (gimp-image-add-layer img bump-layer 1)

    (gimp-selection-all img)
    (gimp-edit-clear bump-layer)
    (gimp-selection-none img)
    (gimp-selection-layer-alpha logo-layer)
    (gimp-edit-fill bump-layer BACKGROUND-FILL)
    (gimp-edit-bucket-fill logo-layer 2 NORMAL-MODE 100 255 FALSE 1 1)
    (gimp-selection-none img)

    (gimp-layer-set-preserve-trans bump-layer FALSE)
    (plug-in-spread 1 img bump-layer spread-amount spread-amount)
    (gimp-selection-layer-alpha bump-layer)
    (plug-in-gauss-rle 1 img bump-layer blur-amount TRUE TRUE)

    (gimp-selection-none img)

    (plug-in-bump-map 1 img logo-layer bump-layer 135.00 25.0 60 0 0 0 0 TRUE invert 1)

    (gimp-drawable-set-visible bump-layer FALSE)

     (if (= drop-shadow TRUE)
	(begin
	  (let* ((shadow-layer (car (gimp-layer-new img width height RGBA-IMAGE "Shadow layer" 100 NORMAL-MODE))))
	    (gimp-image-add-layer img shadow-layer 1)
	    (gimp-selection-all img)
	    (gimp-edit-clear shadow-layer)
	    (gimp-selection-none img)
	    (gimp-selection-layer-alpha logo-layer)
	    (gimp-context-set-background '(0 0 0))
	    (gimp-edit-fill shadow-layer BACKGROUND-FILL)
	    (gimp-selection-none img)
	    (plug-in-gauss-rle 1 img shadow-layer 5 TRUE TRUE)
	    (gimp-layer-translate shadow-layer 6 6))))

     (if (= keep-bump FALSE)
	 (gimp-image-remove-layer img bump-layer))

     (if (= keep-back FALSE)
	 (gimp-image-remove-layer img bg-layer))

    (gimp-context-pop)))

(define (script-fu-chip-away-logo-alpha img
					logo-layer
					spread-amount
					blur-amount
					invert
					drop-shadow
					keep-bump
					bg-fill
					keep-back
					pattern)
  (begin
    (gimp-image-undo-group-start img)
    (apply-chip-away-logo-effect img logo-layer spread-amount blur-amount
				 invert drop-shadow keep-bump bg-fill
				 keep-back pattern)
    (gimp-image-undo-group-end img)
    (gimp-displays-flush)))

(script-fu-register "script-fu-chip-away-logo-alpha"
		    _"Chip Awa_y..."
		    "Chip away effect"
		    "Adrian Likins <adrian@gimp.org>"
		    "Adrian Likins <adrian@gimp.org>"
		    "1997"
		    "RGBA"
                    SF-IMAGE      "Image"                 0
                    SF-DRAWABLE   "Drawable"              0
		    SF-ADJUSTMENT _"Chip amount"          '(30 0 250 1 10 0 1)
		    SF-ADJUSTMENT _"Blur amount"          '(3 1 100 1 10 1 0)
		    SF-TOGGLE     _"Invert"               FALSE
		    SF-TOGGLE     _"Drop shadow"          TRUE
		    SF-TOGGLE     _"Keep bump layer"      FALSE
		    SF-TOGGLE     _"Fill BG with pattern" TRUE
		    SF-TOGGLE     _"Keep background"      TRUE
		    SF-PATTERN    _"Pattern"              "Burlwood")

(script-fu-menu-register "script-fu-chip-away-logo-alpha"
			 _"<Image>/Script-Fu/Alpha to Logo")


(define (script-fu-chip-away-logo text
				  font
				  font-size
				  spread-amount
				  blur-amount
				  invert
				  drop-shadow
				  keep-bump
				  bg-fill
				  keep-back
				  pattern)
  (let* ((img (car (gimp-image-new 256 256 RGB)))
	 (text-layer (car (gimp-text-fontname img -1 0 0
				     text 30 TRUE font-size PIXELS font))))
    (gimp-image-undo-disable img)
    (gimp-drawable-set-name text-layer text)
    (apply-chip-away-logo-effect img text-layer spread-amount blur-amount
				 invert drop-shadow keep-bump bg-fill
				 keep-back pattern)
    (gimp-image-undo-enable img)
    (gimp-display-new img)))

(script-fu-register "script-fu-chip-away-logo"
		    _"Chip Awa_y..."
		    "Chip away effect"
		    "Adrian Likins <adrian@gimp.org>"
		    "Adrian Likins <adrian@gimp.org>"
		    "1997"
		    ""
		    SF-STRING     _"Text"                 "Sloth"
		    SF-FONT       _"Font"                 "RoostHeavy"
		    SF-ADJUSTMENT _"Font size (pixels)"   '(200 2 1000 1 10 0 1)
		    SF-ADJUSTMENT _"Chip amount"          '(30 0 250 1 10 0 1)
		    SF-ADJUSTMENT _"Blur amount"          '(3 1 100 1 10 1 0)
		    SF-TOGGLE     _"Invert"               FALSE
		    SF-TOGGLE     _"Drop shadow"          TRUE
		    SF-TOGGLE     _"Keep bump layer"      FALSE
		    SF-TOGGLE     _"Fill BG with pattern" TRUE
		    SF-TOGGLE     _"Keep background"      TRUE
		    SF-PATTERN    _"Pattern"              "Burlwood")

(script-fu-menu-register "script-fu-chip-away-logo"
			 _"<Toolbox>/Xtns/Script-Fu/Logos")