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
|
;; Trace of Particles Effect
;; Shuji Narazaki (narazaki@InetQ.or.jp)
;; Time-stamp: <97/03/15 17:27:33 narazaki@InetQ.or.jp>
;; Version 0.2
(define (apply-t-o-p-logo-effect img
logo-layer
b-size
hit-rate
edge-size
edge-only
base-color
bg-color)
(let* ((width (car (gimp-drawable-width logo-layer)))
(height (car (gimp-drawable-height logo-layer)))
(logo-layer-mask (car (gimp-layer-create-mask logo-layer ADD-BLACK-MASK)))
(sparkle-layer (car (gimp-layer-new img width height RGBA-IMAGE "Sparkle" 100 NORMAL-MODE)))
(shadow-layer (car (gimp-layer-new img width height RGBA-IMAGE "Shadow" 90 ADDITION-MODE)))
(bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
(selection 0)
(white '(255 255 255)))
(gimp-context-push)
(script-fu-util-image-resize-from-layer img logo-layer)
(gimp-image-add-layer img sparkle-layer 2)
(gimp-image-add-layer img shadow-layer 3)
(gimp-image-add-layer img bg-layer 4)
(gimp-selection-none img)
(gimp-edit-clear shadow-layer)
(gimp-edit-clear sparkle-layer)
(gimp-context-set-background base-color)
(gimp-edit-fill sparkle-layer BACKGROUND-FILL)
(gimp-selection-layer-alpha logo-layer)
(set! selection (car (gimp-selection-save img)))
(gimp-selection-grow img edge-size)
(plug-in-noisify 1 img sparkle-layer FALSE
(* 0.1 hit-rate) (* 0.1 hit-rate) (* 0.1 hit-rate) 0.0)
(gimp-selection-border img edge-size)
(plug-in-noisify 1 img sparkle-layer FALSE hit-rate hit-rate hit-rate 0.0)
(gimp-selection-none img)
(plug-in-sparkle 1 img sparkle-layer 0.03 0.49 width 6 15 1.0 0.0 0.0 0.0 FALSE FALSE FALSE 0)
(gimp-selection-load selection)
(gimp-selection-shrink img edge-size)
(gimp-levels sparkle-layer 0 0 255 1.2 0 255)
(gimp-selection-load selection)
(gimp-selection-border img edge-size)
(gimp-levels sparkle-layer 0 0 255 0.5 0 255)
(gimp-selection-load selection)
(gimp-selection-grow img (/ edge-size 2.0))
(gimp-selection-invert img)
(gimp-edit-clear sparkle-layer)
(if (= edge-only TRUE)
(begin
(gimp-selection-load selection)
(gimp-selection-shrink img (/ edge-size 2.0))
(gimp-edit-clear sparkle-layer)
(gimp-selection-load selection)
(gimp-selection-grow img (/ edge-size 2.0))
(gimp-selection-invert img)))
(gimp-context-set-foreground '(0 0 0))
(gimp-context-set-background '(255 255 255))
(gimp-context-set-brush "Circle Fuzzy (11)")
(gimp-selection-feather img b-size)
(gimp-edit-fill shadow-layer BACKGROUND-FILL)
(gimp-selection-none img)
(gimp-context-set-background base-color)
(gimp-edit-fill bg-layer BACKGROUND-FILL)
(gimp-selection-load selection)
(gimp-context-set-brush "Circle Fuzzy (07)")
(gimp-context-set-foreground '(255 255 255))
(gimp-selection-none img)
(gimp-drawable-set-visible logo-layer 0)
(gimp-image-set-active-layer img sparkle-layer)
(gimp-context-pop)))
(define (script-fu-t-o-p-logo-alpha img
logo-layer
b-size
hit-rate
edge-size
edge-only
base-color
bg-color)
(begin
(gimp-image-undo-group-start img)
(apply-t-o-p-logo-effect img logo-layer b-size hit-rate
edge-size edge-only base-color bg-color)
(gimp-image-undo-group-end img)
(gimp-displays-flush)))
(script-fu-register "script-fu-t-o-p-logo-alpha"
_"_Particle Trace..."
"Trace of Particles Effect"
"Shuji Narazaki (narazaki@InetQ.or.jp)"
"Shuji Narazaki"
"1997"
"RGBA"
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
SF-ADJUSTMENT _"Border size (pixels)" '(20 1 200 1 10 0 1)
SF-ADJUSTMENT _"Hit rate" '(0.2 0 1 .01 .01 2 0)
SF-ADJUSTMENT _"Edge width" '(2 0 128 1 1 0 0)
SF-TOGGLE _"Edge only" FALSE
SF-COLOR _"Base color" '(0 40 0)
SF-COLOR _"Background color" '(255 255 255))
(script-fu-menu-register "script-fu-t-o-p-logo-alpha"
_"<Image>/Script-Fu/Alpha to Logo")
(define (script-fu-t-o-p-logo text
size
fontname
hit-rate
edge-size
edge-only
base-color
bg-color)
(let* ((img (car (gimp-image-new 256 256 RGB)))
(border (/ size 5))
(text-layer (car (gimp-text-fontname img -1 0 0 text (* border 2) TRUE size PIXELS fontname))))
(gimp-image-undo-disable img)
(gimp-drawable-set-name text-layer text)
(apply-t-o-p-logo-effect img text-layer border hit-rate
edge-size edge-only base-color bg-color)
(gimp-image-undo-enable img)
(gimp-display-new img)))
(script-fu-register "script-fu-t-o-p-logo"
_"_Particle Trace..."
"Trace of Particles Effect"
"Shuji Narazaki (narazaki@InetQ.or.jp)"
"Shuji Narazaki"
"1997"
""
SF-STRING _"Text" "The GIMP"
SF-ADJUSTMENT _"Font size (pixels)" '(100 1 1000 1 10 0 1)
SF-FONT _"Font" "Becker"
SF-ADJUSTMENT _"Hit rate" '(0.2 0 1 .01 .01 2 0)
SF-ADJUSTMENT _"Edge width" '(2 0 128 1 1 0 0)
SF-TOGGLE _"Edge only" FALSE
SF-COLOR _"Base color" '(0 40 0)
SF-COLOR _"Background color" '(255 255 255))
(script-fu-menu-register "script-fu-t-o-p-logo"
_"<Toolbox>/Xtns/Script-Fu/Logos")
|