home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 February / PCWorld_2001-02_cd.bin / Software / Topware / gimp / gimp-setup-20001226.exe / Main / sota-chrome-logo.scm < prev    next >
Encoding:
GIMP Script-Fu Script  |  2000-12-27  |  7.9 KB  |  200 lines

  1. ;  CHROME-LOGO2
  2. ;   State of the art chrome logos
  3. ;
  4.  
  5. (define (set-pt a index x y)
  6.   (prog1
  7.    (aset a (* index 2) x)
  8.    (aset a (+ (* index 2) 1) y)))
  9.  
  10. (define (spline1)
  11.   (let* ((a (cons-array 18 'byte)))
  12.     (set-pt a 0 0 0)
  13.     (set-pt a 1 31 235)
  14.     (set-pt a 2 63 23)
  15.     (set-pt a 3 95 230)
  16.     (set-pt a 4 127 25)
  17.     (set-pt a 5 159 210)
  18.     (set-pt a 6 191 20)
  19.     (set-pt a 7 223 240)
  20.     (set-pt a 8 255 31)
  21.     a))
  22.  
  23. (define (brush brush-size)
  24.   (cond ((<= brush-size 5) "Circle Fuzzy (05)")
  25.     ((<= brush-size 7) "Circle Fuzzy (07)")
  26.     ((<= brush-size 9) "Circle Fuzzy (09)")
  27.     ((<= brush-size 11) "Circle Fuzzy (11)")
  28.     ((<= brush-size 13) "Circle Fuzzy (13)")
  29.     ((<= brush-size 15) "Circle Fuzzy (15)")
  30.     ((<= brush-size 17) "Circle Fuzzy (17)")
  31.     (else "Circle Fuzzy (19)")))
  32.  
  33. (define (shadows val)
  34.   (/ (* 0.96 val) 2.55))
  35.  
  36. (define (midtones val)
  37.   (/ val 2.55))
  38.  
  39. (define (highlights val)
  40.   (let ((h (/ (* 1.108 val) 2.55)))
  41.     (if (> h 100) 100 h)))
  42.  
  43. (define (rval col)
  44.   (car col))
  45.  
  46. (define (gval col)
  47.   (cadr col))
  48.  
  49. (define (bval col)
  50.   (caddr col))
  51.  
  52. (define (sota-scale val scale chrome-factor)
  53.   (* (sqrt val) (* scale chrome-factor)))
  54.  
  55. (define (copy-layer-sota dest-image dest-drawable source-image source-drawable)
  56.   (gimp-selection-all dest-image)
  57.   (gimp-edit-clear dest-drawable)
  58.   (gimp-selection-none dest-image)
  59.   (gimp-selection-all source-image)
  60.   (gimp-edit-copy source-drawable)
  61.       (let ((floating-sel (car (gimp-edit-paste dest-drawable FALSE))))
  62.     (gimp-floating-sel-anchor floating-sel)))
  63.  
  64. (define (script-fu-sota-chrome-logo chrome-saturation chrome-lightness chrome-factor
  65.                     text size fontname env-map hc cc)
  66.   (let* ((img (car (gimp-image-new 256 256 GRAY)))
  67.      (banding-img (car (gimp-file-load 1 env-map env-map)))
  68.      (banding-layer (car (gimp-image-active-drawable banding-img)))
  69.      (banding-height (car (gimp-drawable-height banding-layer)))
  70.      (banding-width (car (gimp-drawable-width banding-layer)))
  71.      (banding-type (car (gimp-drawable-type banding-layer)))
  72.      (b-size (sota-scale size 2 chrome-factor))
  73.      (offx1 (sota-scale size 0.33 chrome-factor))
  74.      (offy1 (sota-scale size 0.25 chrome-factor))
  75.      (offx2 (sota-scale size (- 0.33) chrome-factor))
  76.      (offy2 (sota-scale size (- 0.25) chrome-factor))
  77.      (feather (sota-scale size 0.5 chrome-factor))
  78.      (brush-size (sota-scale size 0.5 chrome-factor))
  79.      (text-layer (car (gimp-text-fontname img -1 0 0 text (* b-size 2) TRUE size PIXELS fontname)))
  80.      (width (car (gimp-drawable-width text-layer)))
  81.      (height (car (gimp-drawable-height text-layer)))
  82.      (layer1 (car (gimp-layer-new img banding-width banding-height banding-type "Layer1" 100 NORMAL)))
  83.      (layer2 (car (gimp-layer-new img width height GRAYA_IMAGE "Layer 2" 100 DIFFERENCE)))
  84.      (layer3 (car (gimp-layer-new img width height GRAYA_IMAGE "Layer 3" 100 NORMAL)))
  85.      (shadow (car (gimp-layer-new img width height GRAYA_IMAGE "Drop Shadow" 100 NORMAL)))
  86.      (layer-mask 0)
  87.      (old-fg (car (gimp-palette-get-foreground)))
  88.      (old-bg (car (gimp-palette-get-background)))
  89.      (old-brush (car (gimp-brushes-get-brush)))
  90.      (old-pattern (car (gimp-patterns-get-pattern))))
  91.   
  92.     (gimp-image-undo-disable img)
  93.     (gimp-image-resize img width height 0 0)
  94.     (gimp-image-add-layer img shadow 0)
  95.     (gimp-image-add-layer img layer3 0)
  96.     (gimp-image-add-layer img layer2 0)
  97.     (gimp-palette-set-background '(255 255 255))
  98.     (gimp-selection-none img)
  99.     (gimp-edit-fill layer2 BG-IMAGE-FILL)
  100.     (gimp-edit-fill layer3 BG-IMAGE-FILL)
  101.     (gimp-edit-clear shadow)
  102.     (gimp-layer-set-visible text-layer FALSE)
  103.     (gimp-layer-set-visible shadow FALSE)
  104.  
  105.     (gimp-rect-select img (/ b-size 2) (/ b-size 2) (- width b-size) (- height b-size) REPLACE 0 0)
  106.     (gimp-rect-select img b-size b-size (- width (* b-size 2)) (- height (* b-size 2)) SUB 0 0)
  107.     (gimp-edit-fill text-layer BG-IMAGE-FILL)
  108.  
  109.     (gimp-selection-layer-alpha text-layer)
  110.     (gimp-palette-set-background '(0 0 0))
  111.     (gimp-selection-translate img offx1 offy1)
  112.     (gimp-selection-feather img feather)
  113.     (gimp-edit-fill layer2 BG-IMAGE-FILL)
  114.     (gimp-selection-translate img (* 2 offx2) (* 2 offy2))
  115.     (gimp-edit-fill layer3 BG-IMAGE-FILL)
  116.     (gimp-selection-none img)
  117.     (gimp-layer-set-visible  layer2 TRUE)
  118.     (gimp-layer-set-visible  layer3 TRUE)
  119.     (set! layer2 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
  120.     (gimp-invert layer2)
  121.  
  122.     (copy-layer-sota img layer1 banding-img banding-layer)
  123.     (gimp-image-delete banding-img)
  124.     (gimp-image-add-layer img layer1 0)
  125.     (gimp-layer-scale layer1 width height FALSE)
  126.     (plug-in-gauss-iir 1 img layer1 10 TRUE TRUE)
  127.     (gimp-layer-set-opacity layer1 50)
  128.     (gimp-layer-set-visible  layer1 TRUE)
  129.     (gimp-layer-set-visible  layer2 TRUE)
  130.     (set! layer1 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
  131.     (gimp-curves-spline layer1 0 18 (spline1))
  132.  
  133.     (set! layer-mask (car (gimp-layer-create-mask layer1 BLACK-MASK)))
  134.     (gimp-image-add-layer-mask img layer1 layer-mask)
  135.     (gimp-selection-layer-alpha text-layer)
  136.     (gimp-palette-set-background '(255 255 255))
  137.     (gimp-edit-fill layer-mask BG-IMAGE-FILL)
  138.  
  139.     (set! layer2 (car (gimp-layer-copy layer1 TRUE)))
  140.     (gimp-image-add-layer img layer2 0)
  141.     (gimp-brushes-set-brush (brush brush-size))
  142.     (gimp-palette-set-foreground '(255 255 255))
  143.     (gimp-edit-stroke layer-mask)
  144.  
  145.     (gimp-palette-set-background '(0 0 0))
  146.     (gimp-selection-feather img (* feather 1.5))
  147.     (gimp-selection-translate img (* 2.5 offx1) (* 2.5 offy1))
  148.     (gimp-edit-fill shadow BG-IMAGE-FILL)
  149.  
  150.     (gimp-selection-all img)
  151.     (gimp-patterns-set-pattern "Marble #1")
  152.     (gimp-bucket-fill text-layer PATTERN-BUCKET-FILL NORMAL 100 0 FALSE 0 0)
  153.     (gimp-selection-none img)
  154.  
  155.     (gimp-convert-rgb img)
  156.  
  157.     (gimp-color-balance layer1 0 TRUE (shadows (rval hc)) (shadows (gval hc)) (shadows (bval hc)))
  158.     (gimp-color-balance layer1 1 TRUE (midtones (rval hc)) (midtones (gval hc)) (midtones (bval hc)))
  159.     (gimp-color-balance layer1 2 TRUE (highlights (rval hc)) (highlights (gval hc)) (highlights (bval hc)))
  160.  
  161.     (gimp-color-balance layer2 0 TRUE (shadows (rval cc)) (shadows (gval cc)) (shadows (bval cc)))
  162.     (gimp-color-balance layer2 1 TRUE (midtones (rval cc)) (midtones (gval cc)) (midtones (bval cc)))
  163.     (gimp-color-balance layer2 2 TRUE (highlights (rval cc)) (highlights (gval cc)) (highlights (bval cc)))
  164.     (gimp-hue-saturation layer2 0 0 chrome-lightness chrome-saturation)
  165.  
  166.     (gimp-layer-set-visible shadow TRUE)
  167.     (gimp-layer-set-visible text-layer TRUE)
  168.  
  169.     (gimp-layer-set-name text-layer "Background")
  170.     (gimp-layer-set-name layer2 "Chrome")
  171.     (gimp-layer-set-name layer1 "Highlight")
  172.  
  173.     (gimp-layer-translate shadow (/ b-size -4) (/ b-size -4))
  174.     (gimp-layer-translate layer2 (/ b-size -4) (/ b-size -4))
  175.     (gimp-layer-translate layer1 (/ b-size -4) (/ b-size -4))
  176.  
  177.     (gimp-palette-set-foreground old-fg)
  178.     (gimp-palette-set-background old-bg)
  179.     (gimp-brushes-set-brush old-brush)
  180.     (gimp-patterns-set-pattern old-pattern)
  181.     (gimp-image-undo-enable img)
  182.     (gimp-display-new img)))
  183.  
  184. (script-fu-register "script-fu-sota-chrome-logo"
  185.             _"<Toolbox>/Xtns/Script-Fu/Logos/SOTA Chrome..."
  186.             "State of the art chromed logos"
  187.             "Spencer Kimball"
  188.             "Spencer Kimball"
  189.             "1997"
  190.             ""
  191.             SF-ADJUSTMENT _"Chrome Saturation" '(-80 -100 100 1 10 0 0)
  192.             SF-ADJUSTMENT _"Chrome Lightness" '(-47 -100 100 1 10 0 0)
  193.             SF-ADJUSTMENT _"Chrome Factor" '(.75 0 1 .1 .01 2 0)
  194.             SF-STRING     _"Text" "The GIMP"
  195.             SF-ADJUSTMENT _"Font Size (pixels)" '(150 2 1000 1 10 0 1)
  196.             SF-FONT       _"Font" "-*-RoostHeavy-*-r-*-*-24-*-*-*-p-*-*-*"
  197.             SF-FILENAME   _"Environment Map" (string-append "" gimp-data-dir "/scripts/beavis.jpg")
  198.             SF-COLOR      _"Highlight Balance" '(211 95 0)
  199.             SF-COLOR      _"Chrome Balance" '(0 0 0))
  200.