; ===================================================================== ; Fiery Steel - yet another silly script from WWWWolf ; ===================================================================== ; Copyright (C) 9.5.1998 Urpo Lankinen. ; Greatly enhanced on 19.5.1998. ; Distributed under GPL. Permission granted to distribute this script ; with *anything* that has *something* to do with The GIMP. ; ===================================================================== ; ; E-mail: Homepage: ; ; RCS: $Id: fierysteel.scm,v 1.2 1998/05/19 14:38:36 urpo Exp urpo $ ; ; This script was inspired by "Terminator 2: Judgement Day" ; opening scene. ; ; The result: letters of steel (well, aluminium...) in hellfire. ; "You know, it was not really easy for a mere layman to figure out ; the flame-generation script"... but with a dragon around, it was ; much easier. ; ; For coolest results, Use Scott font from CorelDRAW!... ; (But Crillee/FreeFonts produces pretty kewl results, too.) ; ; Hey, you can use GUMP (Mail plugin) to mail this image... ; ...a complete redefinition of "flame"! ; ; Changed on June 15, 2000 by Kevin Cozens ; Updated for GIMP 1.1.26 ; ; Changed on December 8 2003 by Kevin Cozens ; Updated for GIMP 1.2 ; ; Changed on January 28 2004 by Kevin Cozens ; Updated for GIMP 1.3 ; (define (script-fu-fiery-steel text font size grad perc txtbord fierytog sprd rndamt fulltog) (let* ((img (car (gimp-image-new 256 256 RGB))) (bg-layer (car (gimp-text-fontname img -1 0 0 text 10 TRUE size PIXELS font))) (text-layer (car (gimp-text-fontname img -1 0 0 text 10 TRUE size PIXELS font))) (width (car (gimp-drawable-width text-layer))) (height (car (gimp-drawable-height text-layer))) (text2-layer (car (gimp-text-fontname img -1 0 0 text 10 TRUE size PIXELS font))) (brd-layer (car (gimp-layer-new img width height 3 "border" 100 OVERLAY-MODE))) (old-fg (car (gimp-palette-get-foreground))) (old-bg (car (gimp-palette-get-background)))) (gimp-image-undo-disable img) (gimp-drawable-set-name text-layer "Text") (gimp-drawable-set-name text2-layer "Text2") (gimp-drawable-set-name bg-layer "Bg") (gimp-image-resize img width height 0 0) ; ÄKSÖN ========================================================= ; Background (gimp-image-set-active-layer img bg-layer) (gimp-selection-all img) (gimp-palette-set-foreground '(0 0 0)) (gimp-edit-bucket-fill bg-layer FG-BUCKET-FILL NORMAL-MODE 100 255 FALSE 1 1) (gimp-palette-set-foreground old-fg) (gimp-selection-none img) ; Do the gradient (gimp-image-set-active-layer img text2-layer) (gimp-layer-set-preserve-trans text2-layer TRUE) ; Preserve trans. (gimp-gradients-set-gradient grad) (gimp-edit-blend text2-layer CUSTOM-MODE NORMAL-MODE GRADIENT-LINEAR 100 0 REPEAT-NONE 0 0 3 0.2 0 (/ width 2) 0 (/ width 2) height) (gimp-layer-set-preserve-trans text2-layer FALSE) ; and hide the bg and this new one (gimp-drawable-set-visible bg-layer FALSE) (gimp-drawable-set-visible text-layer TRUE) (gimp-drawable-set-visible text2-layer FALSE) ; Add white layer (set! tmp-layer (car (gimp-layer-new img width height RGB-IMAGE "Temp" 100 NORMAL-MODE))) (gimp-image-add-layer img tmp-layer 3) (gimp-image-set-active-layer img tmp-layer) (gimp-selection-all img) (gimp-palette-set-foreground '(255 255 255)) (gimp-edit-bucket-fill tmp-layer FG-BUCKET-FILL NORMAL-MODE 100 255 FALSE 1 1) (gimp-palette-set-foreground old-fg) (gimp-selection-none img) ; Merge, blur, bump (set! bump-layer (car (gimp-image-merge-visible-layers img EXPAND-AS-NECESSARY))) (gimp-drawable-set-visible bg-layer TRUE) (plug-in-gauss-iir 1 img bump-layer txtbord TRUE TRUE) (gimp-drawable-set-visible bump-layer FALSE) (gimp-drawable-set-visible text2-layer TRUE) ; Twiddle the brightness a little (gimp-brightness-contrast text2-layer -20 -20) ; Bumpmapping depends on do we need the flames or not... (plug-in-bump-map 1 img text2-layer bump-layer (if (eq? fierytog FALSE) 135.00 90.00) (if (eq? fierytog FALSE) 45.00 30.0) 6 0 0 0 0 FALSE FALSE GRADIENT-LINEAR) (gimp-image-remove-layer img bump-layer) ; And that was the easy part. ::sigh:: (if (eq? fierytog TRUE) (let* ((sheight (* height perc)) (ycoord (- height sheight))) ; Add a layer (set! fire1-layer (car (gimp-layer-new img width height RGBA-IMAGE "Fire 1" 100 NORMAL-MODE))) (gimp-image-add-layer img fire1-layer 0) ; Clear it (gimp-selection-all img) (gimp-edit-clear fire1-layer) ; Make lower part red (gimp-rect-select img 0 ycoord width sheight CHANNEL-OP-REPLACE FALSE 0) (gimp-palette-set-foreground '(180 0 20)) (gimp-edit-bucket-fill fire1-layer FG-BUCKET-FILL NORMAL-MODE 100 255 FALSE 1 1) (gimp-selection-none img) ; Do nasty stuff to the lower fire layer (plug-in-ripple 1 img fire1-layer (/ width 8) (/ height 8) 1 0 1 FALSE FALSE) (plug-in-whirl-pinch 1 img fire1-layer 45 0 0.7) ; Copy the layer, make it yellow, shift down a bit (set! fire2-layer (car (gimp-layer-copy fire1-layer TRUE))) (gimp-image-add-layer img fire2-layer 0) ; top (gimp-drawable-set-name fire2-layer "Fire 2") (gimp-image-set-active-layer img fire2-layer) (gimp-layer-set-preserve-trans fire2-layer TRUE) (gimp-palette-set-foreground '(228 170 4)) ; Yellow (gimp-selection-all img) (gimp-edit-bucket-fill fire2-layer FG-BUCKET-FILL NORMAL-MODE 100 255 FALSE 1 1) (gimp-layer-set-preserve-trans fire2-layer FALSE) (gimp-selection-none img) (gimp-drawable-offset fire2-layer FALSE 1 0 (/ height 8)) ; The third fire layer (set! fire3-layer (car (gimp-layer-copy fire1-layer TRUE))) (gimp-image-add-layer img fire3-layer 0) ; top (gimp-drawable-set-name fire3-layer "Fire 3") (gimp-drawable-offset fire3-layer FALSE 1 0 (* 2.6 (/ height 8))) ; resize the said layer... (gimp-image-set-active-layer img fire3-layer) (gimp-selection-all img) (gimp-scale fire3-layer TRUE 0 (* height 0.6) width height) ; spread, spindle, mutilate (plug-in-spread 1 img fire1-layer 0 (* 3 sprd)) (plug-in-spread 1 img fire2-layer 0 (* 2 sprd)) (plug-in-spread 1 img fire3-layer 0 (* 1.5 sprd)) ; Merge the layers (gimp-drawable-set-visible text2-layer FALSE) (gimp-drawable-set-visible bg-layer FALSE) (set! fire-layer (car (gimp-image-merge-visible-layers img EXPAND-AS-NECESSARY))) (gimp-drawable-set-name fire-layer "Fire") (gimp-layer-set-preserve-trans fire-layer TRUE) (plug-in-gauss-rle 1 img fire-layer (* 2 sprd) TRUE TRUE) (gimp-layer-set-preserve-trans fire-layer FALSE) (gimp-drawable-set-visible text2-layer TRUE) (gimp-drawable-set-visible bg-layer TRUE) (plug-in-noisify 1 img fire-layer TRUE 0.2 0.2 0.2 0.2) (plug-in-noisify 1 img fire-layer TRUE 0.2 0.2 0.2 0.2) (plug-in-gauss-rle 1 img fire-layer (* 2 sprd) TRUE TRUE) ; Then, Let's nastyize it. (gimp-layer-set-preserve-trans fire-layer TRUE) (plug-in-blur-randomize-pick 1 img fire-layer 80 rndamt 10 0) (gimp-layer-set-preserve-trans fire-layer FALSE) (plug-in-oilify 1 img fire-layer 3 0) ; Finally, make the flames burrrrrn... (gimp-layer-set-mode fire-layer ADDITION-MODE) (if (eq? fulltog FALSE) (begin (gimp-drawable-set-visible bg-layer FALSE) (set! text2-layer (car (gimp-image-merge-visible-layers img EXPAND-AS-NECESSARY))) (gimp-drawable-set-visible bg-layer TRUE))) )) ; End of fiery stuff ; End of Action(tm) ============================================= (gimp-palette-set-background old-bg) (gimp-palette-set-foreground old-fg) (gimp-image-undo-enable img) (gimp-display-new img))) ; ; Hajaa-ho! ; (script-fu-register "script-fu-fiery-steel" "/Xtns/Script-Fu/Logos/Fiery Steel..." "An effect inspired by the \"Terminator 2: Judgement Day\" opening titles. Metallic letters in hellfire. $Revision: 1.2 $" "Urpo Lankinen " "Urpo Lankinen " "9 May 1998 (Enhanced greatly on 19 May)" "" SF-STRING "Text String" "RGRNCA" SF-FONT "Font" "Crillee" SF-ADJUSTMENT "Font Size (pixels)" '(140 2 1000 1 10 0 1) SF-GRADIENT "Gradient" "Brushed Aluminium" SF-VALUE "Engulfment percentage" "0.50" SF-VALUE "Text border" "3.5" SF-TOGGLE "Fire effects" TRUE SF-VALUE "Spread coefficient" "5" SF-VALUE "# of fire randomizes" "40" SF-TOGGLE "Fire over background" FALSE ) ; BTW, if you're wondering what "RGRNCA" means, surf to: ;