File: comic-logo.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 (163 lines) | stat: -rw-r--r-- 5,913 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
; The GIMP -- an image manipulation program
; Copyright (C) 1995 Spencer Kimball and Peter Mattis
; 
; 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.
;
;  Comic Book Logo v0.1  04/08/98
;  by Brian McFee
;  Creates snazzy-looking text, inspired by watching a Maxx marathon :)

(define (apply-comic-logo-effect img
				 logo-layer
				 gradient
				 gradient-reverse
				 ol-width
				 ol-color
				 bg-color)
  (let* ((width (car (gimp-drawable-width logo-layer)))
	 (height (car (gimp-drawable-height logo-layer)))
	 (posx (- (car (gimp-drawable-offsets logo-layer))))
	 (posy (- (cadr (gimp-drawable-offsets logo-layer))))
	 (bg-layer (car (gimp-layer-new img width height RGBA-IMAGE
					"Background" 100 NORMAL-MODE)))
	 (white-layer (car (gimp-layer-copy logo-layer 1)))
	 (black-layer (car (gimp-layer-copy logo-layer 1))))

    (gimp-context-push)

    (script-fu-util-image-resize-from-layer img logo-layer)
    (gimp-image-add-layer img bg-layer 1)
    (gimp-image-add-layer img white-layer 1)
    (gimp-layer-translate white-layer posx posy)
    (gimp-drawable-set-name white-layer "White")
    (gimp-image-add-layer img black-layer 1)
    (gimp-layer-translate black-layer posx posy)
    (gimp-drawable-set-name black-layer "Black")
  
    (gimp-selection-all img)
    (gimp-context-set-background bg-color)
    (gimp-edit-fill bg-layer BACKGROUND-FILL)
    (gimp-selection-none img)

    (gimp-layer-set-preserve-trans white-layer TRUE)
    (gimp-context-set-background ol-color)
    (gimp-selection-all img)
    (gimp-edit-fill white-layer BACKGROUND-FILL)
    (gimp-layer-set-preserve-trans white-layer FALSE)
    (plug-in-spread 1 img white-layer (* 3 ol-width) (* 3 ol-width))
    (plug-in-gauss-rle 1 img white-layer (* 2 ol-width) 1 1)
    (plug-in-threshold-alpha 1 img white-layer 0)
    (gimp-layer-set-preserve-trans white-layer TRUE)
    (gimp-edit-fill white-layer BACKGROUND-FILL)
    (gimp-selection-none img)

    (gimp-context-set-background '(0 0 0))
    (gimp-layer-set-preserve-trans black-layer TRUE)
    (gimp-selection-all img)
    (gimp-edit-fill black-layer BACKGROUND-FILL)
    (gimp-selection-none img)
    (gimp-layer-set-preserve-trans black-layer FALSE)
    (plug-in-gauss-rle 1 img black-layer ol-width 1 1)
    (plug-in-threshold-alpha 1 img black-layer 0)

    (gimp-context-set-gradient gradient)
    (gimp-layer-set-preserve-trans logo-layer TRUE)
    (gimp-selection-all img)

    (gimp-edit-blend logo-layer CUSTOM-MODE NORMAL-MODE
		     GRADIENT-LINEAR 100 0 REPEAT-NONE gradient-reverse
		     FALSE 0 0 TRUE
		     0 (* height 0.3) 0 (* height 0.78))

    (plug-in-noisify 1 img logo-layer 0 0.20 0.20 0.20 0.20)
    (gimp-selection-none img)
    (gimp-layer-set-preserve-trans logo-layer FALSE)
    (gimp-brightness-contrast logo-layer 0 30)
    (plug-in-threshold-alpha 1 img logo-layer 60)
    (gimp-image-set-active-layer img logo-layer)

    (gimp-context-pop)))

(define (script-fu-comic-logo-alpha img
				    logo-layer
				    gradient
				    gradient-reverse
				    ol-width
				    ol-color
				    bg-color)
  (begin
    (gimp-image-undo-group-start img)
    (apply-comic-logo-effect img logo-layer
			     gradient gradient-reverse
			     ol-width ol-color bg-color)
    (gimp-image-undo-group-end img)
    (gimp-displays-flush)))

(script-fu-register "script-fu-comic-logo-alpha"
		    _"Comic Boo_k..."
		    "Comic-book Style Logos"
		    "Brian McFee <keebler@wco.com>"
		    "Brian McFee"
		    "April 1998"
		    "RGBA"
                    SF-IMAGE       "Image"            0
                    SF-DRAWABLE    "Drawable"         0
		    SF-GRADIENT   _"Gradient"         "Incandescent"
		    SF-TOGGLE     _"Gradient reverse" FALSE
		    SF-ADJUSTMENT _"Outline size"     '(5 1 100 1 10 0 1)
		    SF-COLOR      _"Outline color"    '(255 255 255)
		    SF-COLOR      _"Background color" '(255 255 255))

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


(define (script-fu-comic-logo text
			      size
			      font
			      gradient
			      gradient-reverse
			      ol-width
			      ol-color
			      bg-color)
  (let* ((img (car (gimp-image-new 256 256 RGB)))
         (border (/ size 4))
	 (text-layer (car (gimp-text-fontname
			   img -1 0 0 text border TRUE size PIXELS font))))
    (gimp-image-undo-disable img)
    (gimp-drawable-set-name text-layer text)
    (apply-comic-logo-effect img text-layer gradient gradient-reverse
			     ol-width ol-color bg-color)
    (gimp-image-undo-enable img)
    (gimp-display-new img)))

(script-fu-register "script-fu-comic-logo"
		    _"Comic Boo_k..."
		    "Comic-book Style Logos"
		    "Brian McFee <keebler@wco.com>"
		    "Brian McFee"
		    "April 1998"
		    ""
		    SF-STRING     _"Text"               "Moo"
		    SF-ADJUSTMENT _"Font size (pixels)" '(85 2 1000 1 10 0 1)
		    SF-FONT       _"Font"               "Tribeca"
		    SF-GRADIENT   _"Gradient"           "Incandescent"
		    SF-TOGGLE     _"Gradient reverse"   FALSE
		    SF-ADJUSTMENT _"Outline size"       '(5 1 100 1 10 0 1)
		    SF-COLOR      _"Outline color"      '(255 255 255)
		    SF-COLOR      _"Background color"   '(255 255 255))

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