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

  1. ;  CHROME-LOGOS
  2.  
  3. (define (apply-chrome-logo-effect img
  4.                   logo-layer
  5.                   offsets
  6.                   bg-color)
  7.   (let* ((offx1 (* offsets 0.4))
  8.      (offy1 (* offsets 0.3))
  9.      (offx2 (* offsets (- 0.4)))
  10.      (offy2 (* offsets (- 0.3)))
  11.      (feather (* offsets 0.5))
  12.      (width (car (gimp-drawable-width logo-layer)))
  13.      (height (car (gimp-drawable-height logo-layer)))
  14.      (layer1 (car (gimp-layer-new img width height RGBA_IMAGE "Layer 1" 100 DIFFERENCE)))
  15.      (layer2 (car (gimp-layer-new img width height RGBA_IMAGE "Layer 2" 100 DIFFERENCE)))
  16.      (layer3 (car (gimp-layer-new img width height RGBA_IMAGE "Layer 3" 100 NORMAL)))
  17.      (shadow (car (gimp-layer-new img width height RGBA_IMAGE "Drop Shadow" 100 NORMAL)))
  18.      (background (car (gimp-layer-new img width height RGB_IMAGE "Background" 100 NORMAL)))
  19.      (layer-mask (car (gimp-layer-create-mask layer1 BLACK-MASK)))
  20.      (old-fg (car (gimp-palette-get-foreground)))
  21.      (old-bg (car (gimp-palette-get-background))))
  22.     (gimp-image-resize img width height 0 0)
  23.     (gimp-image-add-layer img background 1)
  24.     (gimp-image-add-layer img shadow 1)
  25.     (gimp-image-add-layer img layer3 1)
  26.     (gimp-image-add-layer img layer2 1)
  27.     (gimp-image-add-layer img layer1 1)
  28.     (gimp-palette-set-background '(255 255 255))
  29.     (gimp-selection-none img)
  30.     (gimp-edit-fill layer1 BG-IMAGE-FILL)
  31.     (gimp-edit-fill layer2 BG-IMAGE-FILL)
  32.     (gimp-edit-fill layer3 BG-IMAGE-FILL)
  33.     (gimp-edit-clear shadow)
  34.     (gimp-selection-layer-alpha logo-layer)
  35.     (gimp-layer-set-visible logo-layer FALSE)
  36.     (gimp-layer-set-visible shadow FALSE)
  37.     (gimp-layer-set-visible background FALSE)
  38.     (gimp-palette-set-background '(0 0 0))
  39.     (gimp-edit-fill layer1 BG-IMAGE-FILL)
  40.     (gimp-selection-translate img offx1 offy1)
  41.     (gimp-selection-feather img feather)
  42.     (gimp-edit-fill layer2 BG-IMAGE-FILL)
  43.     (gimp-selection-translate img (* 2 offx2) (* 2 offy2))
  44.     (gimp-edit-fill layer3 BG-IMAGE-FILL)
  45.     (gimp-selection-none img)
  46.     (set! layer1 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
  47.     (gimp-invert layer1)
  48.     (gimp-image-add-layer-mask img layer1 layer-mask)
  49.     (gimp-selection-layer-alpha logo-layer)
  50.     (gimp-palette-set-background '(255 255 255))
  51.     (gimp-selection-feather img feather)
  52.     (gimp-edit-fill layer-mask BG-IMAGE-FILL)
  53.     (gimp-palette-set-background '(0 0 0))
  54.     (gimp-selection-translate img offx1 offy1)
  55.     (gimp-edit-fill shadow BG-IMAGE-FILL)
  56.     (gimp-selection-none img)
  57.     (gimp-palette-set-background bg-color)
  58.     (gimp-edit-fill background BG-IMAGE-FILL)
  59.     (gimp-layer-set-visible shadow TRUE)
  60.     (gimp-layer-set-visible background TRUE)
  61.     (gimp-layer-set-name layer1 (car (gimp-layer-get-name logo-layer)))
  62.     (gimp-image-remove-layer img logo-layer)
  63.     (gimp-palette-set-foreground old-fg)
  64.     (gimp-palette-set-background old-bg)))
  65.  
  66. (define (script-fu-chrome-logo-alpha img
  67.                      logo-layer
  68.                      offsets
  69.                      bg-color)
  70.   (begin
  71.     (gimp-undo-push-group-start img)
  72.     (apply-chrome-logo-effect img logo-layer offsets bg-color)
  73.     (gimp-undo-push-group-end img)
  74.     (gimp-displays-flush)))
  75.  
  76. (script-fu-register "script-fu-chrome-logo-alpha"
  77.             _"<Image>/Script-Fu/Alpha to Logo/Chrome..."
  78.             "Somewhat simplistic, but cool chromed logos"
  79.             "Spencer Kimball"
  80.             "Spencer Kimball & Peter Mattis"
  81.             "1997"
  82.             "RGBA"
  83.                     SF-IMAGE      "Image" 0
  84.                     SF-DRAWABLE   "Drawable" 0
  85.             SF-ADJUSTMENT _"Offsets (pixels * 2)" '(10 2 100 1 10 0 1)
  86.             SF-COLOR      _"Background Color" '(191 191 191)
  87.             )
  88.  
  89. (define (script-fu-chrome-logo text
  90.                    size
  91.                    font
  92.                    bg-color)
  93.   (let* ((img (car (gimp-image-new 256 256 RGB)))
  94.      (b-size (* size 0.2))
  95.      (text-layer (car (gimp-text-fontname img -1 0 0 text b-size TRUE size PIXELS font))))
  96.     (gimp-image-undo-disable img)
  97.     (gimp-layer-set-name text-layer text)
  98.     (apply-chrome-logo-effect img text-layer (* size 0.1) bg-color)
  99.     (gimp-image-undo-enable img)
  100.     (gimp-display-new img)))
  101.  
  102. (script-fu-register "script-fu-chrome-logo"
  103.             _"<Toolbox>/Xtns/Script-Fu/Logos/Chrome..."
  104.             "Somewhat simplistic, but cool chromed logos"
  105.             "Spencer Kimball"
  106.             "Spencer Kimball & Peter Mattis"
  107.             "1997"
  108.             ""
  109.             SF-STRING     _"Text" "The GIMP"
  110.             SF-ADJUSTMENT _"Font Size (pixels)" '(100 2 1000 1 10 0 1)
  111.             SF-FONT       _"Font" "-*-Bodoni-*-r-*-*-24-*-*-*-p-*-*-*"
  112.             SF-COLOR      _"Background Color" '(191 191 191)
  113.             )
  114.