gimp/plug-ins/script-fu/scripts/sota-chrome-logo.scm

203 lines
7.7 KiB
Scheme
Raw Normal View History

1997-11-25 06:05:25 +08:00
; CHROME-LOGO2
; State of the art chrome logos
;
(define (set-pt a index x y)
(prog1
(aset a (* index 2) x)
(aset a (+ (* index 2) 1) y)))
(define (spline1)
(let* ((a (cons-array 18 'byte)))
(set-pt a 0 0 0)
(set-pt a 1 31 235)
(set-pt a 2 63 23)
(set-pt a 3 95 230)
(set-pt a 4 127 25)
(set-pt a 5 159 210)
(set-pt a 6 191 20)
(set-pt a 7 223 240)
(set-pt a 8 255 31)
a))
(define (brush brush-size)
(cond ((<= brush-size 5) "Circle Fuzzy (05)")
((<= brush-size 7) "Circle Fuzzy (07)")
((<= brush-size 9) "Circle Fuzzy (09)")
((<= brush-size 11) "Circle Fuzzy (11)")
((<= brush-size 13) "Circle Fuzzy (13)")
((<= brush-size 15) "Circle Fuzzy (15)")
((<= brush-size 17) "Circle Fuzzy (17)")
(else "Circle Fuzzy (19)")))
(define (shadows val)
(/ (* 0.96 val) 2.55))
(define (midtones val)
(/ val 2.55))
(define (highlights val)
(let ((h (/ (* 1.108 val) 2.55)))
(if (> h 100) 100 h)))
(define (rval col)
(car col))
(define (gval col)
(cadr col))
(define (bval col)
(caddr col))
(define (sota-scale val scale chrome-factor)
(* (sqrt val) (* scale chrome-factor)))
(define (copy-layer-sota dest-image dest-drawable source-image source-drawable)
(gimp-selection-all dest-image)
(gimp-edit-clear dest-drawable)
1997-11-25 06:05:25 +08:00
(gimp-selection-none dest-image)
(gimp-selection-all source-image)
(gimp-edit-copy source-drawable)
(let ((floating-sel (car (gimp-edit-paste dest-drawable FALSE))))
1997-11-25 06:05:25 +08:00
(gimp-floating-sel-anchor floating-sel)))
(define (script-fu-sota-chrome-logo chrome-saturation chrome-lightness chrome-factor
text size fontname env-map hc cc)
1997-11-25 06:05:25 +08:00
(let* ((img (car (gimp-image-new 256 256 GRAY)))
(banding-img (car (gimp-file-load 1 env-map env-map)))
(banding-layer (car (gimp-image-get-active-drawable banding-img)))
1997-11-25 06:05:25 +08:00
(banding-height (car (gimp-drawable-height banding-layer)))
(banding-width (car (gimp-drawable-width banding-layer)))
(banding-type (car (gimp-drawable-type banding-layer)))
(b-size (sota-scale size 2 chrome-factor))
(offx1 (sota-scale size 0.33 chrome-factor))
(offy1 (sota-scale size 0.25 chrome-factor))
(offx2 (sota-scale size (- 0.33) chrome-factor))
(offy2 (sota-scale size (- 0.25) chrome-factor))
(feather (sota-scale size 0.5 chrome-factor))
(brush-size (sota-scale size 0.5 chrome-factor))
(text-layer (car (gimp-text-fontname img -1 0 0 text (* b-size 2) TRUE size PIXELS fontname)))
1997-11-25 06:05:25 +08:00
(width (car (gimp-drawable-width text-layer)))
(height (car (gimp-drawable-height text-layer)))
(layer1 (car (gimp-layer-new img banding-width banding-height banding-type "Layer1" 100 NORMAL-MODE)))
(layer2 (car (gimp-layer-new img width height GRAYA-IMAGE "Layer 2" 100 DIFFERENCE)))
(layer3 (car (gimp-layer-new img width height GRAYA-IMAGE "Layer 3" 100 NORMAL-MODE)))
(shadow (car (gimp-layer-new img width height GRAYA-IMAGE "Drop Shadow" 100 NORMAL-MODE)))
1997-11-25 06:05:25 +08:00
(layer-mask 0)
(old-fg (car (gimp-palette-get-foreground)))
(old-bg (car (gimp-palette-get-background)))
(old-brush (car (gimp-brushes-get-brush)))
(old-pattern (car (gimp-patterns-get-pattern))))
1999-10-17 08:07:55 +08:00
(gimp-image-undo-disable img)
1997-11-25 06:05:25 +08:00
(gimp-image-resize img width height 0 0)
(gimp-image-add-layer img shadow 0)
(gimp-image-add-layer img layer3 0)
(gimp-image-add-layer img layer2 0)
(gimp-palette-set-background '(255 255 255))
(gimp-selection-none img)
(gimp-edit-fill layer2 BACKGROUND-FILL)
(gimp-edit-fill layer3 BACKGROUND-FILL)
(gimp-edit-clear shadow)
(gimp-drawable-set-visible text-layer FALSE)
(gimp-drawable-set-visible shadow FALSE)
1997-11-25 06:05:25 +08:00
(gimp-rect-select img (/ b-size 2) (/ b-size 2) (- width b-size) (- height b-size) REPLACE 0 0)
(gimp-rect-select img b-size b-size (- width (* b-size 2)) (- height (* b-size 2)) SUB 0 0)
(gimp-edit-fill text-layer BACKGROUND-FILL)
1997-11-25 06:05:25 +08:00
(gimp-selection-layer-alpha text-layer)
1997-11-25 06:05:25 +08:00
(gimp-palette-set-background '(0 0 0))
(gimp-selection-translate img offx1 offy1)
(gimp-selection-feather img feather)
(gimp-edit-fill layer2 BACKGROUND-FILL)
1997-11-25 06:05:25 +08:00
(gimp-selection-translate img (* 2 offx2) (* 2 offy2))
(gimp-edit-fill layer3 BACKGROUND-FILL)
1997-11-25 06:05:25 +08:00
(gimp-selection-none img)
(gimp-drawable-set-visible layer2 TRUE)
(gimp-drawable-set-visible layer3 TRUE)
1997-11-25 06:05:25 +08:00
(set! layer2 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
(gimp-invert layer2)
1997-11-25 06:05:25 +08:00
(copy-layer-sota img layer1 banding-img banding-layer)
(gimp-image-delete banding-img)
(gimp-image-add-layer img layer1 0)
(gimp-layer-scale layer1 width height FALSE)
(plug-in-gauss-iir 1 img layer1 10 TRUE TRUE)
(gimp-layer-set-opacity layer1 50)
(gimp-drawable-set-visible layer1 TRUE)
(gimp-drawable-set-visible layer2 TRUE)
1997-11-25 06:05:25 +08:00
(set! layer1 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
(gimp-curves-spline layer1 0 18 (spline1))
1997-11-25 06:05:25 +08:00
(set! layer-mask (car (gimp-layer-create-mask layer1 ADD-BLACK-MASK)))
marked gimp_image_add_layer_mask() and gimp_image_remove_layer_mask() as 2003-12-08 Michael Natterer <mitch@gimp.org> * tools/pdbgen/pdb/image.pdb: marked gimp_image_add_layer_mask() and gimp_image_remove_layer_mask() as deprecated. Didnn't remove them from the PDB because the new functions' signature differs and they are used very often in scripts, but removed them from the libgimp C wrappers. * tools/pdbgen/pdb/layer.pdb: added gimp_layer_add_mask() and gimp_layer_remove_mask(). * libgimp/gimpcompat.h: added compat cruft. * app/pdb/image_cmds.c * app/pdb/internal_procs.c * app/pdb/layer_cmds.c * libgimp/gimpimage_pdb.[ch] * libgimp/gimplayer_pdb.[ch]: regenerated. * libgimp/gimpexport.c * plug-ins/common/curve_bend.c * plug-ins/common/psd.c * plug-ins/pygimp/pygimp-image.c * plug-ins/script-fu/scripts/3d-outline.scm * plug-ins/script-fu/scripts/alien-neon-logo.scm * plug-ins/script-fu/scripts/blended-logo.scm * plug-ins/script-fu/scripts/burn-in-anim.scm * plug-ins/script-fu/scripts/carve-it.scm * plug-ins/script-fu/scripts/carved-logo.scm * plug-ins/script-fu/scripts/chrome-it.scm * plug-ins/script-fu/scripts/chrome-logo.scm * plug-ins/script-fu/scripts/coolmetal-logo.scm * plug-ins/script-fu/scripts/crystal-logo.scm * plug-ins/script-fu/scripts/fade-outline.scm * plug-ins/script-fu/scripts/frosty-logo.scm * plug-ins/script-fu/scripts/image-structure.scm * plug-ins/script-fu/scripts/news-text.scm * plug-ins/script-fu/scripts/rendermap.scm * plug-ins/script-fu/scripts/slide.scm * plug-ins/script-fu/scripts/sota-chrome-logo.scm * plug-ins/script-fu/scripts/speed-text.scm * plug-ins/script-fu/scripts/starburst-logo.scm * plug-ins/script-fu/scripts/textured-logo.scm * plug-ins/script-fu/scripts/weave.scm * plug-ins/script-fu/scripts/xach-effect.scm * plug-ins/xjt/xjt.c: changed accordingly. 2003-12-08 Michael Natterer <mitch@gimp.org> * libgimp/libgimp-sections.txt * libgimp/tmpl/gimpimage.sgml * libgimp/tmpl/gimplayer.sgml: follow layer mask API change.
2003-12-09 06:33:17 +08:00
(gimp-layer-add-mask layer1 layer-mask)
(gimp-selection-layer-alpha text-layer)
1997-11-25 06:05:25 +08:00
(gimp-palette-set-background '(255 255 255))
(gimp-edit-fill layer-mask BACKGROUND-FILL)
1997-11-25 06:05:25 +08:00
(set! layer2 (car (gimp-layer-copy layer1 TRUE)))
(gimp-image-add-layer img layer2 0)
(gimp-brushes-set-brush (brush brush-size))
(gimp-palette-set-foreground '(255 255 255))
(gimp-edit-stroke layer-mask)
1997-11-25 06:05:25 +08:00
(gimp-palette-set-background '(0 0 0))
(gimp-selection-feather img (* feather 1.5))
(gimp-selection-translate img (* 2.5 offx1) (* 2.5 offy1))
(gimp-edit-fill shadow BACKGROUND-FILL)
1997-11-25 06:05:25 +08:00
(gimp-selection-all img)
(gimp-patterns-set-pattern "Marble #1")
(gimp-bucket-fill text-layer PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
1997-11-25 06:05:25 +08:00
(gimp-selection-none img)
(gimp-image-convert-rgb img)
1997-11-25 06:05:25 +08:00
(gimp-color-balance layer1 0 TRUE (shadows (rval hc)) (shadows (gval hc)) (shadows (bval hc)))
(gimp-color-balance layer1 1 TRUE (midtones (rval hc)) (midtones (gval hc)) (midtones (bval hc)))
(gimp-color-balance layer1 2 TRUE (highlights (rval hc)) (highlights (gval hc)) (highlights (bval hc)))
1997-11-25 06:05:25 +08:00
(gimp-color-balance layer2 0 TRUE (shadows (rval cc)) (shadows (gval cc)) (shadows (bval cc)))
(gimp-color-balance layer2 1 TRUE (midtones (rval cc)) (midtones (gval cc)) (midtones (bval cc)))
(gimp-color-balance layer2 2 TRUE (highlights (rval cc)) (highlights (gval cc)) (highlights (bval cc)))
(gimp-hue-saturation layer2 0 0 chrome-lightness chrome-saturation)
1997-11-25 06:05:25 +08:00
(gimp-drawable-set-visible shadow TRUE)
(gimp-drawable-set-visible text-layer TRUE)
1997-11-25 06:05:25 +08:00
(gimp-drawable-set-name text-layer "Background")
(gimp-drawable-set-name layer2 "Chrome")
(gimp-drawable-set-name layer1 "Highlight")
1997-11-25 06:05:25 +08:00
(gimp-layer-translate shadow (/ b-size -4) (/ b-size -4))
(gimp-layer-translate layer2 (/ b-size -4) (/ b-size -4))
(gimp-layer-translate layer1 (/ b-size -4) (/ b-size -4))
(gimp-palette-set-foreground old-fg)
(gimp-palette-set-background old-bg)
(gimp-brushes-set-brush old-brush)
(gimp-patterns-set-pattern old-pattern)
1999-10-17 08:07:55 +08:00
(gimp-image-undo-enable img)
1997-11-25 06:05:25 +08:00
(gimp-display-new img)))
(script-fu-register "script-fu-sota-chrome-logo"
_"<Toolbox>/Xtns/Script-Fu/Logos/SOTA Chrome..."
"State of the art chromed logos"
1997-11-25 06:05:25 +08:00
"Spencer Kimball"
"Spencer Kimball"
"1997"
""
SF-ADJUSTMENT _"Chrome Saturation" '(-80 -100 100 1 10 0 0)
SF-ADJUSTMENT _"Chrome Lightness" '(-47 -100 100 1 10 0 0)
SF-ADJUSTMENT _"Chrome Factor" '(.75 0 1 .1 .01 2 0)
SF-STRING _"Text" "The GIMP"
SF-ADJUSTMENT _"Font Size (pixels)" '(150 2 1000 1 10 0 1)
SF-FONT _"Font" "RoostHeavy"
SF-FILENAME _"Environment Map"
(string-append ""
gimp-data-dir
"/scripts/images/beavis.jpg")
SF-COLOR _"Highlight Balance" '(211 95 0)
SF-COLOR _"Chrome Balance" '(0 0 0))