; Shrek text ; Copyright (c) 2004 Ivan Zenkov ; ; ; Based on iText tutorial by Craig Marshall ; ; This program is free software; you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by ; the Free Software Foundation; either version 2 of the License, or ; (at your option) any later version. ; ; This program is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; ; You should have received a copy of the GNU General Public License ; along with this program; if not, write to the Free Software ; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. (define (script-fu-shrek-text string font-name font-size text-color b-color bg-color) (let* ((text-ext (gimp-text-get-extents-fontname string font-size 0 font-name)) (wid (+ (car text-ext) 20)) (hig (+ (cadr text-ext) 5)) (img (car (gimp-image-new wid hig 0))) (bg-layer (car (gimp-layer-new img wid hig 0 "Background" 100 0))) (shadow-layer (car (gimp-layer-new img wid hig 1 "Shadow" 100 0))) (text-layer (car (gimp-layer-new img wid hig 1 "Text" 100 0))) (glow-layer (car (gimp-layer-new img wid hig 1 "Glow layer (first)" 100 0))) (plastic-layer (car (gimp-layer-new img wid hig 1 "Plastic effect" 100 0))) (text-channel (car (gimp-channel-new img wid hig "Text channel" 50 '(0 0 0)))) (shrink-num (/ (caddr text-ext) (* (/ (/ (caddr text-ext) 3.3) (caddr text-ext)) 100))) (blur-num (/ (caddr text-ext) 10)) (old-fg (car (gimp-palette-get-foreground))) (old-bg (car (gimp-palette-get-background))) ;;2.4lj (glow-layer-second) ) (gimp-image-undo-disable img) (gimp-image-add-layer img bg-layer 1) (gimp-image-add-layer img shadow-layer -1) (gimp-image-add-layer img text-layer -1) (gimp-image-add-layer img glow-layer -1) (gimp-image-add-layer img plastic-layer -1) (gimp-image-add-channel img text-channel 0) (gimp-palette-set-background bg-color) (gimp-edit-clear bg-layer) (gimp-edit-clear shadow-layer) (gimp-edit-clear text-layer) (gimp-edit-clear glow-layer) (gimp-edit-clear plastic-layer) (gimp-palette-set-background b-color) (gimp-edit-clear text-channel) (gimp-palette-set-foreground text-color) (gimp-floating-sel-anchor (car (gimp-text-fontname img text-layer 10 10 string 0 TRUE font-size PIXELS font-name))) ; glow effect (gimp-selection-layer-alpha text-layer) (gimp-selection-shrink img shrink-num) (gimp-edit-fill glow-layer 2) (gimp-layer-set-mode glow-layer 5) (gimp-selection-none img) (plug-in-gauss-iir2 1 img glow-layer blur-num blur-num) ;; ugly code (set! glow-layer-second (car (gimp-layer-copy glow-layer 0))) (gimp-layer-set-name glow-layer-second "Glow layer (second)") (gimp-image-add-layer img glow-layer-second -1) (gimp-layer-set-mode glow-layer-second 5) (set! text-layer (car (gimp-image-merge-down img glow-layer-second 2))) (set! text-layer (car (gimp-image-merge-down img glow-layer 2))) ; blur channel (gimp-edit-copy text-layer) (gimp-floating-sel-anchor (car (gimp-edit-paste text-channel 0))) (plug-in-gauss-iir2 1 img text-channel (/ blur-num 2) (/ blur-num 2)) ; (gimp-drawable-set-visible text-channel 0) (gimp-channel-set-visible text-channel 0) ;1.2ύX ; plastic effect (gimp-edit-fill plastic-layer 1) (gimp-layer-set-mode plastic-layer 4) (plug-in-lighting 1 img plastic-layer text-channel 0 TRUE FALSE 0 0 '(255 255 255) 1 0 1 -1 -1 1 0.30 1 0.40 0.60 27 TRUE FALSE FALSE) (set! text-layer (car (gimp-image-merge-down img plastic-layer 2))) ; shadow (gimp-selection-layer-alpha text-layer) (gimp-edit-fill shadow-layer 1) (gimp-selection-none img) (plug-in-gauss-iir2 1 img shadow-layer 1 1) ; I can't use script-fu-drop-shadow :-( ; ERROR: wta(1st) to min (see errobj) ; Please fix it. ; (script-fu-drop-shadow 0 img bg-layer 0 0 1 '(0 0 0) 100 1) ; I can't delete channel ; ERROR: Procedural database execution failed: ; (gimp_drawable_delete 66) ; Please fix it. ; (gimp-drawable-delete text-channel) (gimp-palette-set-foreground old-fg) (gimp-palette-set-background old-bg) (gimp-image-undo-enable img) (gimp-display-new img))) (script-fu-register "script-fu-shrek-text" _"/Xtns/Script-Fu/Logos2/Shrek Text..." "Give text a iMac effect" "Ivan Zenkov" "Ivan Zenkov" "September 17, 2004" "" SF-STRING _"Text" "Shrek Text" SF-FONT _"Font" "Comic Sans MS Bold" SF-ADJUSTMENT _"Font Size (pixels)" '(120 2 1000 1 10 0 1) SF-COLOR _"Text Color" '(84 155 8) SF-COLOR _"Blend Color" '(0 0 0) SF-COLOR _"BG Color" '(255 255 255))