home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / The GIMP 2.2.8 / gimp-2.2.8-i586-setup.exe / {app} / share / gimp / 2.0 / scripts / frosty-logo.scm < prev    next >
Encoding:
GIMP Script-Fu Script  |  2005-06-30  |  5.3 KB  |  138 lines

  1. ;  FROZEN-TEXT effect
  2. ;  Thanks to Ed Mackey for this one
  3. ;   Written by Spencer Kimball
  4.  
  5. (define (apply-frosty-logo-effect img
  6.                   logo-layer
  7.                   size
  8.                   bg-color)
  9.   (let* ((border (/ size 5))
  10.      (width (+ (car (gimp-drawable-width logo-layer)) border))
  11.      (height (+ (car (gimp-drawable-height logo-layer)) border))
  12.      (logo-layer-mask (car (gimp-layer-create-mask logo-layer ADD-BLACK-MASK)))
  13.      (sparkle-layer (car (gimp-layer-new img width height RGBA-IMAGE "Sparkle" 100 NORMAL-MODE)))
  14.      (matte-layer (car (gimp-layer-new img width height RGBA-IMAGE "Matte" 100 NORMAL-MODE)))
  15.      (shadow-layer (car (gimp-layer-new img width height RGBA-IMAGE "Shadow" 90 MULTIPLY-MODE)))
  16.      (bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
  17.      (selection 0))
  18.  
  19.     (define (for-each proc seq)
  20.       (if (not (null? seq))
  21.         (begin
  22.           (proc (car seq))
  23.           (for-each proc (cdr seq)))))
  24.  
  25.     (gimp-context-push)
  26.  
  27.     (gimp-layer-add-mask logo-layer logo-layer-mask)
  28.     (script-fu-util-image-resize-from-layer img shadow-layer)
  29.     (gimp-image-add-layer img sparkle-layer 2)
  30.     (gimp-image-add-layer img matte-layer 3)
  31.     (gimp-image-add-layer img shadow-layer 4)
  32.     (gimp-image-add-layer img bg-layer 5)
  33.     (gimp-layer-translate logo-layer border border)
  34.     (gimp-selection-none img)
  35.     (gimp-edit-clear sparkle-layer)
  36.     (gimp-edit-clear matte-layer)
  37.     (gimp-edit-clear shadow-layer)
  38.     (gimp-selection-layer-alpha logo-layer)
  39.     (set! selection (car (gimp-selection-save img)))
  40.     (gimp-selection-feather img border)
  41.     (gimp-context-set-background '(0 0 0))
  42.     (gimp-edit-fill sparkle-layer BACKGROUND-FILL)
  43.     (plug-in-noisify 1 img sparkle-layer FALSE 0.2 0.2 0.2 0.0)
  44.     (plug-in-c-astretch 1 img sparkle-layer)
  45.     (gimp-selection-none img)
  46.     (plug-in-sparkle 1 img sparkle-layer 0.03 0.5 (/ (min width height) 2) 6 15 1.0 0.0 0.0 0.0 FALSE FALSE FALSE 0)
  47.     (gimp-levels sparkle-layer 1 0 255 0.2 0 255)
  48.     (gimp-levels sparkle-layer 2 0 255 0.7 0 255)
  49.     (gimp-selection-layer-alpha sparkle-layer)
  50.     (gimp-context-set-foreground '(0 0 0))
  51.     (gimp-context-set-brush "Circle Fuzzy (11)")
  52.     (gimp-edit-stroke matte-layer)
  53.     (gimp-selection-feather img border)
  54.     (gimp-edit-fill shadow-layer BACKGROUND-FILL)
  55.     (gimp-selection-none img)
  56.     (gimp-context-set-background bg-color)
  57.     (gimp-edit-fill bg-layer BACKGROUND-FILL)
  58.     (gimp-context-set-background '(0 0 0))
  59.     (gimp-edit-fill logo-layer BACKGROUND-FILL)
  60. ;    (gimp-layer-add-mask logo-layer logo-layer-mask)
  61.     (gimp-selection-load selection)
  62.     (gimp-context-set-background '(255 255 255))
  63.     (gimp-edit-fill logo-layer-mask BACKGROUND-FILL)
  64.     (gimp-selection-feather img border)
  65.     (gimp-selection-translate img (/ border 2) (/ border 2))
  66.     (gimp-edit-fill logo-layer BACKGROUND-FILL)
  67.     (gimp-layer-remove-mask logo-layer 0)
  68.     (gimp-selection-load selection)
  69.     (gimp-context-set-brush "Circle Fuzzy (07)")
  70.     (gimp-context-set-paint-mode BEHIND-MODE)
  71.     (gimp-context-set-foreground '(186 241 255))
  72.     (gimp-edit-stroke logo-layer)
  73.     (gimp-selection-none img)
  74.     (gimp-image-remove-channel img selection)
  75.     (for-each (lambda (the-layer) 
  76.                 (gimp-layer-resize the-layer (- width border) (- height border) (- border) (- border))
  77.                 ; (gimp-layer-translate the-layer border border)
  78.                 )
  79.               (list sparkle-layer matte-layer bg-layer))
  80.     (gimp-layer-resize shadow-layer (- width border) (- height border) 0 0)
  81.     (gimp-layer-translate shadow-layer border border)
  82.     (script-fu-util-image-resize-from-layer img logo-layer)
  83.     (gimp-context-pop)))
  84.  
  85. (define (script-fu-frosty-logo-alpha img
  86.                      logo-layer
  87.                      size
  88.                      bg-color)
  89.   (begin
  90.     (gimp-image-undo-group-start img)
  91.     (apply-frosty-logo-effect img logo-layer size bg-color)
  92.     (gimp-image-undo-group-end img)
  93.     (gimp-displays-flush)))
  94.  
  95.  
  96. (script-fu-register "script-fu-frosty-logo-alpha"
  97.             _"_Frosty..."
  98.             "Frozen logos with drop shadows"
  99.             "Spencer Kimball & Ed Mackey"
  100.             "Spencer Kimball & Ed Mackey"
  101.             "1997"
  102.             "RGBA"
  103.                     SF-IMAGE      "Image"                 0
  104.                     SF-DRAWABLE   "Drawable"              0
  105.             SF-ADJUSTMENT _"Effect size (pixels)" '(100 2 1000 1 10 0 1)
  106.             SF-COLOR      _"Background color"     '(255 255 255))
  107.  
  108. (script-fu-menu-register "script-fu-frosty-logo-alpha"
  109.              _"<Image>/Script-Fu/Alpha to Logo")
  110.  
  111. (define (script-fu-frosty-logo text
  112.                    size
  113.                    font
  114.                    bg-color)
  115.   (let* ((img (car (gimp-image-new 256 256 RGB)))
  116.      (border (/ size 5))
  117.      (text-layer (car (gimp-text-fontname img -1 0 0 text (* border 2) TRUE size PIXELS font))))
  118.     (gimp-image-undo-disable img)
  119.     (gimp-drawable-set-name text-layer text)
  120.     (apply-frosty-logo-effect img text-layer size bg-color)
  121.     (gimp-image-undo-enable img)
  122.     (gimp-display-new img)))
  123.  
  124. (script-fu-register "script-fu-frosty-logo"
  125.             _"_Frosty..."
  126.             "Frozen logos with drop shadows"
  127.             "Spencer Kimball & Ed Mackey"
  128.             "Spencer Kimball & Ed Mackey"
  129.             "1997"
  130.             ""
  131.             SF-STRING     _"Text"               "The GIMP"
  132.             SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
  133.             SF-FONT       _"Font"               "Becker"
  134.             SF-COLOR      _"Background color"   '(255 255 255))
  135.  
  136. (script-fu-menu-register "script-fu-frosty-logo"
  137.              _"<Toolbox>/Xtns/Script-Fu/Logos")
  138.