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

  1. ; 3d-outlined-patterned-shadowed-and-bump-mapped-logo :)
  2. ; creates outlined border of a text with patterns
  3. ;
  4. ; The GIMP -- an image manipulation program
  5. ; Copyright (C) 1995 Spencer Kimball and Peter Mattis
  6. ;
  7. ; 3d-outline creates outlined border of a text with patterns
  8. ; Copyright (C) 1998 Hrvoje Horvat
  9. ;
  10. ; This program is free software; you can redistribute it and/or modify
  11. ; it under the terms of the GNU General Public License as published by
  12. ; the Free Software Foundation; either version 2 of the License, or
  13. ; (at your option) any later version.
  14. ;
  15. ; This program is distributed in the hope that it will be useful,
  16. ; but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18. ; GNU General Public License for more details.
  19. ;
  20. ; You should have received a copy of the GNU General Public License
  21. ; along with this program; if not, write to the Free Software
  22. ; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  23.  
  24. (define (apply-3d-outline-logo-effect img
  25.                       logo-layer
  26.                       text-pattern
  27.                       outline-blur-radius
  28.                       shadow-blur-radius
  29.                       bump-map-blur-radius
  30.                       noninteractive
  31.                       s-offset-x
  32.                       s-offset-y)
  33.   (let* ((width (car (gimp-drawable-width logo-layer)))
  34.          (height (car (gimp-drawable-height logo-layer)))
  35.          (bg-layer (car (gimp-layer-new img width height RGB_IMAGE "Background" 100 NORMAL)))
  36.          (pattern (car (gimp-layer-new img width height RGBA_IMAGE "Pattern" 100 NORMAL)))
  37.          (old-fg (car (gimp-palette-get-foreground)))
  38.          (old-bg (car (gimp-palette-get-background))))
  39.     (gimp-image-resize img width height 0 0)
  40.     (gimp-image-add-layer img pattern 1)
  41.     (gimp-image-add-layer img bg-layer 2)
  42.     (gimp-palette-set-background '(255 255 255))
  43.     (gimp-edit-fill bg-layer BG-IMAGE-FILL)
  44.     (gimp-edit-clear pattern)
  45.     (gimp-layer-set-preserve-trans logo-layer TRUE)
  46.     (gimp-palette-set-foreground '(0 0 0))
  47.     (gimp-edit-fill logo-layer FG-IMAGE-FILL)
  48.     (gimp-layer-set-preserve-trans logo-layer FALSE)
  49.     (plug-in-gauss-iir 1 img logo-layer outline-blur-radius TRUE TRUE)
  50.  
  51.     (gimp-layer-set-visible pattern FALSE)
  52.     (set! layer2 (car (gimp-image-merge-visible-layers img 1)))
  53.     (plug-in-edge 1 img layer2 2 1)
  54.     (set! layer3 (car (gimp-layer-copy layer2 TRUE)))
  55.     (gimp-image-add-layer img layer3 2)
  56.     (plug-in-gauss-iir 1 img layer2 bump-map-blur-radius TRUE TRUE)
  57.  
  58.     (gimp-selection-all img)
  59.     (gimp-patterns-set-pattern text-pattern)
  60.     (gimp-bucket-fill pattern PATTERN-BUCKET-FILL NORMAL 100 0 FALSE 0 0)
  61.     (plug-in-bump-map noninteractive img pattern layer2 110.0 45.0 4 0 0 0 0 TRUE FALSE 0)
  62.  
  63.     (set! pattern-mask (car (gimp-layer-create-mask pattern ALPHA-MASK)))
  64.     (gimp-image-add-layer-mask img pattern pattern-mask)
  65.  
  66.     (gimp-selection-all img)
  67.     (gimp-edit-copy layer3)
  68.     (set! floating_sel (car (gimp-edit-paste pattern-mask 0)))
  69.     (gimp-floating-sel-anchor floating_sel)
  70.  
  71.     (gimp-image-remove-layer-mask img pattern APPLY)
  72.     (gimp-invert layer3)
  73.     (plug-in-gauss-iir 1 img layer3 shadow-blur-radius TRUE TRUE)
  74.  
  75.     (gimp-channel-ops-offset layer3 0 1 s-offset-x s-offset-y)
  76.  
  77.     (gimp-layer-set-visible layer2 FALSE)
  78.     (gimp-layer-set-visible pattern TRUE)
  79.     ;;(set! final (car (gimp-image-flatten img)))
  80.     
  81.     (gimp-palette-set-background old-bg)
  82.     (gimp-palette-set-foreground old-fg)))
  83.  
  84. (define (script-fu-3d-outline-logo-alpha img
  85.                      logo-layer
  86.                      text-pattern
  87.                      outline-blur-radius
  88.                      shadow-blur-radius
  89.                      bump-map-blur-radius
  90.                      noninteractive
  91.                      s-offset-x
  92.                      s-offset-y)
  93.   (begin
  94.     (gimp-undo-push-group-start img)
  95.     (apply-3d-outline-logo-effect img logo-layer text-pattern
  96.                   outline-blur-radius shadow-blur-radius
  97.                   bump-map-blur-radius noninteractive
  98.                   s-offset-x s-offset-y)
  99.     (gimp-undo-push-group-end img)
  100.     (gimp-displays-flush)))
  101.  
  102. (script-fu-register "script-fu-3d-outline-logo-alpha"
  103.                     _"<Image>/Script-Fu/Alpha to Logo/3D Outline..."
  104.                     "Creates outlined texts with drop shadow"
  105.                     "Hrvoje Horvat (hhorvat@open.hr)"
  106.                     "Hrvoje Horvat"
  107.                     "07 April, 1998"
  108.                     "RGBA"
  109.                     SF-IMAGE    "Image" 0
  110.                     SF-DRAWABLE "Drawable" 0
  111.             SF-PATTERN _"Pattern" "Parque #1"
  112.                     SF-ADJUSTMENT   _"Outline Blur Radius" '(5 1 200 1 10 0 1)
  113.                     SF-ADJUSTMENT   _"Shadow Blur Radius" '(10 1 200 1 10 0 1)
  114.                     SF-ADJUSTMENT   _"Bumpmap (Alpha Layer) Blur Radius" '(5 1 200 1 10 0 1)
  115.             SF-TOGGLE  _"Default Bumpmap Settings" TRUE
  116.             SF-ADJUSTMENT   _"Shadow X Offset" '(0 0 200 1 5 0 1)
  117.                     SF-ADJUSTMENT   _"Shadow Y Offset" '(0 0 200 1 5 0 1))
  118.  
  119. (define (script-fu-3d-outline-logo text-pattern
  120.                    text
  121.                    size
  122.                    font
  123.                    outline-blur-radius
  124.                    shadow-blur-radius
  125.                    bump-map-blur-radius
  126.                    noninteractive
  127.                    s-offset-x
  128.                    s-offset-y)
  129.   (let* ((img (car (gimp-image-new 256 256 RGB)))
  130.          (text-layer (car (gimp-text-fontname img -1 0 0 text 30 TRUE size PIXELS font))))
  131.     (gimp-image-undo-disable img)
  132.     (apply-3d-outline-logo-effect img text-layer text-pattern
  133.                   outline-blur-radius shadow-blur-radius
  134.                   bump-map-blur-radius noninteractive
  135.                   s-offset-x s-offset-y)
  136.     (gimp-image-undo-enable img)
  137.     (gimp-display-new img)))
  138.  
  139. (script-fu-register "script-fu-3d-outline-logo"
  140.                     _"<Toolbox>/Xtns/Script-Fu/Logos/3D Outline..."
  141.                     "Creates outlined texts with drop shadow"
  142.                     "Hrvoje Horvat (hhorvat@open.hr)"
  143.                     "Hrvoje Horvat"
  144.                     "07 April, 1998"
  145.                     ""
  146.             SF-PATTERN _"Pattern" "Parque #1"
  147.                     SF-STRING  _"Text" "The Gimp"
  148.                     SF-ADJUSTMENT _"Font Size (pixels)" '(100 2 1000 1 10 0 1)
  149.                     SF-FONT    _"Font" "-*-Roostheavy-*-r-*-*-24-*-*-*-p-*-*-*"
  150.                     SF-ADJUSTMENT   _"Outline Blur Radius" '(5 1 200 1 10 0 1)
  151.                     SF-ADJUSTMENT   _"Shadow Blur Radius" '(10 1 200 1 10 0 1)
  152.                     SF-ADJUSTMENT   _"Bumpmap (Alpha Layer) Blur Radius" '(5 1 200 1 10 0 1)
  153.             SF-TOGGLE  _"Default Bumpmap Settings" TRUE
  154.             SF-ADJUSTMENT   _"Shadow X Offset" '(0 0 200 1 5 0 1)
  155.                     SF-ADJUSTMENT   _"Shadow Y Offset" '(0 0 200 1 5 0 1))
  156.