home *** CD-ROM | disk | FTP | other *** search
/ Enter 2004 August / ENTER.ISO / files / gimp-2.0.5-i586-setup.exe / {app} / share / gimp / 2.0 / scripts / glossy.scm < prev    next >
Encoding:
GIMP Script-Fu Script  |  2004-09-26  |  10.2 KB  |  266 lines

  1. ; glossy-patterned-shadowed-and-bump-mapped-logo
  2. ; creates anything you can create with it :)
  3. ; (use it wisely, use it in peace...)
  4. ;
  5. ; The GIMP -- an image manipulation program
  6. ; Copyright (C) 1995 Spencer Kimball and Peter Mattis
  7. ;
  8. ; glossy gives a glossy outlook to your fonts (unlogical name, isn't it?)
  9. ; Copyright (C) 1998 Hrvoje Horvat
  10. ;
  11. ; This program is free software; you can redistribute it and/or modify
  12. ; it under the terms of the GNU General Public License as published by
  13. ; the Free Software Foundation; either version 2 of the License, or
  14. ; (at your option) any later version.
  15. ;
  16. ; This program is distributed in the hope that it will be useful,
  17. ; but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19. ; GNU General Public License for more details.
  20. ;
  21. ; You should have received a copy of the GNU General Public License
  22. ; along with this program; if not, write to the Free Software
  23. ; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  24.  
  25. (define (apply-glossy-logo-effect img
  26.                   logo-layer
  27.                   blend-gradient-text
  28.                   blend-gradient-text-reverse
  29.                   blend-gradient-outline
  30.                   blend-gradient-outline-reverse
  31.                   grow-size
  32.                   bg-color
  33.                   use-pattern-text
  34.                   pattern-text
  35.                   use-pattern-outline
  36.                   pattern-outline
  37.                   use-pattern-overlay
  38.                   pattern-overlay
  39.                   noninteractive
  40.                   shadow-toggle
  41.                   s-offset-x
  42.                   s-offset-y)
  43.   (let* ((width (car (gimp-drawable-width logo-layer)))
  44.          (height (car (gimp-drawable-height logo-layer)))
  45.          (posx (- (car (gimp-drawable-offsets logo-layer))))
  46.          (posy (- (cadr (gimp-drawable-offsets logo-layer))))
  47.          (bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
  48.          (grow-me (car (gimp-layer-copy logo-layer TRUE)))
  49.  
  50.          (old-gradient (car (gimp-gradients-get-gradient)))
  51.          (old-patterns (car (gimp-patterns-get-pattern)))
  52.          (old-fg (car (gimp-palette-get-foreground)))
  53.          (old-bg (car (gimp-palette-get-background))))
  54.  
  55.     (script-fu-util-image-resize-from-layer img logo-layer)
  56.     (gimp-drawable-set-name grow-me "Grow-me")
  57.     (gimp-image-add-layer img grow-me 1)
  58.     (gimp-layer-translate grow-me posx posy)
  59.     (gimp-image-add-layer img bg-layer 2)
  60.  
  61.     (gimp-palette-set-background bg-color)
  62.     (gimp-selection-all img)
  63.     (gimp-edit-bucket-fill bg-layer BG-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
  64.     (gimp-selection-none img)
  65.     (gimp-palette-set-background old-bg)
  66.  
  67.     (gimp-selection-layer-alpha logo-layer)
  68.  
  69. ; if we are going to use transparent gradients for text, we will (maybe) need to uncomment this
  70. ; this clears black letters first so you don't end up with black where the transparent should be
  71. ;    (gimp-edit-clear img logo-layer)
  72.  
  73.     (if (= use-pattern-text TRUE)
  74.       (begin
  75.         (gimp-patterns-set-pattern pattern-text)
  76.         (gimp-edit-bucket-fill logo-layer PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
  77.         (gimp-patterns-set-pattern old-patterns)))
  78.  
  79.     (if (= use-pattern-text FALSE)
  80.       (begin
  81.         (gimp-gradients-set-gradient blend-gradient-text)
  82.  
  83.         (gimp-edit-blend logo-layer CUSTOM-MODE NORMAL-MODE
  84.              GRADIENT-LINEAR 100 0 REPEAT-NONE
  85.              blend-gradient-text-reverse
  86.              FALSE 0 0 TRUE
  87.              0 0 0 (+ height 5))))
  88.  
  89.     (gimp-selection-none img)
  90.  
  91.     (gimp-selection-layer-alpha grow-me)
  92.     (gimp-selection-grow img grow-size)
  93.  
  94. ; if we are going to use transparent gradients for outline, we will (maybe) need to uncomment this
  95. ; I didn't put it in the options because there are already enough settings there and anyway, transparent
  96. ; gradients will be used very rarely (if ever)
  97. ;    (gimp-edit-clear img grow-me)
  98.  
  99.     (if (= use-pattern-outline TRUE)
  100.       (begin
  101.         (gimp-patterns-set-pattern pattern-outline)
  102.         (gimp-edit-bucket-fill grow-me PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
  103.         (gimp-patterns-set-pattern old-patterns)))
  104.  
  105.     (if (= use-pattern-outline FALSE)
  106.       (begin
  107.         (gimp-gradients-set-gradient blend-gradient-outline)
  108.  
  109.         (gimp-edit-blend grow-me CUSTOM-MODE NORMAL-MODE
  110.              GRADIENT-LINEAR 100 0 REPEAT-NONE
  111.              blend-gradient-outline-reverse
  112.              FALSE 0 0 TRUE
  113.              0 0 0 (+ height 5))))
  114.  
  115.     (gimp-selection-none img)
  116.  
  117.     (plug-in-bump-map noninteractive img grow-me logo-layer 110.0 45.0 3 0 0 0 0 TRUE FALSE 0)
  118.     (gimp-layer-set-mode logo-layer SCREEN-MODE)
  119.  
  120.     (if (= use-pattern-overlay TRUE)
  121.       (begin
  122.         (gimp-selection-layer-alpha grow-me)
  123.         (gimp-patterns-set-pattern pattern-overlay)
  124.         (gimp-edit-bucket-fill grow-me PATTERN-BUCKET-FILL OVERLAY-MODE 100 0 FALSE 0 0)
  125.         (gimp-patterns-set-pattern old-patterns)
  126.         (gimp-selection-none img)))
  127.  
  128.     (if (= shadow-toggle TRUE)
  129.       (begin
  130.     (gimp-selection-layer-alpha logo-layer)
  131.     (set! dont-drop-me (car (script-fu-drop-shadow img logo-layer s-offset-x s-offset-y 15 '(0 0 0) 80 TRUE)))
  132.         (set! width (car (gimp-image-width img)))
  133.         (set! height (car (gimp-image-height img)))
  134.         (gimp-selection-none img)))
  135.  
  136.   (gimp-gradients-set-gradient old-gradient)
  137.   (gimp-palette-set-background old-bg)
  138.   (gimp-palette-set-foreground old-fg)))
  139.  
  140.  
  141. (define (script-fu-glossy-logo-alpha img
  142.                      logo-layer
  143.                      blend-gradient-text
  144.                      blend-gradient-text-reverse
  145.                      blend-gradient-outline
  146.                      blend-gradient-outline-reverse
  147.                      grow-size
  148.                      bg-color
  149.                      use-pattern-text
  150.                      pattern-text
  151.                      use-pattern-outline
  152.                      pattern-outline
  153.                      use-pattern-overlay
  154.                      pattern-overlay
  155.                      noninteractive
  156.                      shadow-toggle
  157.                      s-offset-x
  158.                      s-offset-y)
  159.   (begin
  160.     (gimp-image-undo-group-start img)
  161.     (apply-glossy-logo-effect img logo-layer
  162.                   blend-gradient-text
  163.                   blend-gradient-text-reverse
  164.                   blend-gradient-outline
  165.                   blend-gradient-outline-reverse
  166.                   grow-size bg-color
  167.                   use-pattern-text pattern-text
  168.                   use-pattern-outline pattern-outline
  169.                   use-pattern-overlay pattern-overlay
  170.                   noninteractive shadow-toggle
  171.                   s-offset-x s-offset-y)
  172.     (gimp-image-undo-group-end img)
  173.     (gimp-displays-flush)))
  174.  
  175.  
  176. (script-fu-register "script-fu-glossy-logo-alpha"
  177.                     _"<Image>/Script-Fu/Alpha to Logo/Glo_ssy..."
  178.                     "Creates anything you can create with it :)"
  179.                     "Hrvoje Horvat (hhorvat@open.hr)"
  180.                     "Hrvoje Horvat"
  181.                     "14/04/1998"
  182.             "RGBA"
  183.                     SF-IMAGE      "Image"                     0
  184.                     SF-DRAWABLE   "Drawable"                  0
  185.                     SF-GRADIENT   _"Blend Gradient (Text)"    "Shadows 2"
  186.             SF-TOGGLE     _"Text Gradient Reverse"    FALSE
  187.                     SF-GRADIENT   _"Blend Gradient (Outline)" "Shadows 2"
  188.             SF-TOGGLE     _"Outline Gradient Reverse" FALSE
  189.                     SF-ADJUSTMENT _"Outline Size"             '(5 0 250 1 10 0 1)
  190.             SF-COLOR      _"Background Color"         '(255 255 255)
  191.             SF-TOGGLE     _"Use Pattern for Text instead of Gradient" FALSE
  192.             SF-PATTERN    _"Pattern (Text)"           "Electric Blue"
  193.             SF-TOGGLE     _"Use Pattern for Outline instead of Gradient" FALSE
  194.             SF-PATTERN    _"Pattern (Outline)"        "Electric Blue"
  195.             SF-TOGGLE     _"Use Pattern Overlay"      FALSE
  196.             SF-PATTERN    _"Pattern (Overlay)"        "Parque #1"
  197.             SF-TOGGLE     _"Default Bumpmap Settings" TRUE
  198.             SF-TOGGLE     _"Shadow"                   TRUE
  199.             SF-ADJUSTMENT _"Shadow X Offset"          '(8 0 100 1 10 0 1)
  200.                     SF-ADJUSTMENT _"Shadow Y Offset"          '(8 0 100 1 10 0 1))
  201.  
  202.  
  203. (define (script-fu-glossy-logo text
  204.                    size
  205.                    font
  206.                    blend-gradient-text
  207.                    blend-gradient-text-reverse
  208.                    blend-gradient-outline
  209.                    blend-gradient-outline-reverse
  210.                    grow-size
  211.                    bg-color
  212.                    use-pattern-text
  213.                    pattern-text
  214.                    use-pattern-outline
  215.                    pattern-outline
  216.                    use-pattern-overlay
  217.                    pattern-overlay
  218.                    noninteractive
  219.                    shadow-toggle
  220.                    s-offset-x
  221.                    s-offset-y)
  222.   (let* ((img (car (gimp-image-new 256 256 RGB)))
  223.      (text-layer (car (gimp-text-fontname img -1 0 0 text 30 TRUE size PIXELS font))))
  224.     (gimp-image-undo-disable img)
  225.     (gimp-drawable-set-name text-layer text)
  226.     (apply-glossy-logo-effect img text-layer
  227.                   blend-gradient-text
  228.                   blend-gradient-text-reverse
  229.                   blend-gradient-outline
  230.                   blend-gradient-outline-reverse
  231.                   grow-size bg-color
  232.                   use-pattern-text pattern-text
  233.                   use-pattern-outline pattern-outline
  234.                   use-pattern-overlay pattern-overlay
  235.                   noninteractive shadow-toggle
  236.                   s-offset-x s-offset-y)
  237.     (gimp-image-undo-enable img)
  238.     (gimp-display-new img)))
  239.  
  240. (script-fu-register "script-fu-glossy-logo"
  241.                     _"<Toolbox>/Xtns/Script-Fu/Logos/Glo_ssy..."
  242.                     "Creates anything you can create with it :)"
  243.                     "Hrvoje Horvat (hhorvat@open.hr)"
  244.                     "Hrvoje Horvat"
  245.                     "14/04/1998"
  246.                     ""
  247.                     SF-STRING     _"Text"                     "Galaxy"
  248.                     SF-ADJUSTMENT _"Font Size (pixels)"       '(100 2 1000 1 10 0 1)
  249.                     SF-FONT       _"Font"                     "Eras"
  250.                     SF-GRADIENT   _"Blend Gradient (Text)"    "Shadows 2"
  251.             SF-TOGGLE     _"Text Gradient Reverse"    FALSE
  252.                     SF-GRADIENT   _"Blend Gradient (Outline)" "Shadows 2"
  253.             SF-TOGGLE     _"Outline Gradient Reverse" FALSE
  254.                     SF-ADJUSTMENT _"Outline Size"             '(5 0 250 1 10 0 1)
  255.             SF-COLOR      _"Background Color"         '(255 255 255)
  256.             SF-TOGGLE     _"Use Pattern for Text instead of Gradient" FALSE
  257.             SF-PATTERN    _"Pattern (Text)"           "Electric Blue"
  258.             SF-TOGGLE     _"Use Pattern for Outline instead of Gradient" FALSE
  259.             SF-PATTERN    _"Pattern (Outline)"        "Electric Blue"
  260.             SF-TOGGLE     _"Use Pattern Overlay"      FALSE
  261.             SF-PATTERN    _"Pattern (Overlay)"        "Parque #1"
  262.             SF-TOGGLE     _"Default Bumpmap Settings" TRUE
  263.             SF-TOGGLE     _"Shadow"                   TRUE
  264.             SF-ADJUSTMENT _"Shadow X Offset"          '(8 0 100 1 10 0 1)
  265.                     SF-ADJUSTMENT _"Shadow Y Offset"          '(8 0 100 1 10 0 1))
  266.