[gimp-data-extras] Add obsoleted scripts from gimp-2-8: File/Create/ and Filters/Alpha to Logo
- From: Alexandre Prokoudine <aprokoudine src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp-data-extras] Add obsoleted scripts from gimp-2-8: File/Create/ and Filters/Alpha to Logo
- Date: Mon, 11 Jun 2018 01:51:09 +0000 (UTC)
commit d381115520d10a0e6b7c72f70ae1b264b51810c3
Author: Alexandre Prokoudine <alexandre prokoudine gmail com>
Date: Mon Jun 11 04:49:40 2018 +0300
Add obsoleted scripts from gimp-2-8: File/Create/ and Filters/Alpha to Logo
Makefile.am | 2 +-
configure.in | 1 +
scripts/3d-outline.scm | 185 ++++++++++++++++++++++
scripts/3dTruchet.scm | 242 +++++++++++++++++++++++++++++
scripts/Makefile.am | 56 +++++++
scripts/alien-glow-arrow.scm | 189 +++++++++++++++++++++++
scripts/alien-glow-bar.scm | 100 ++++++++++++
scripts/alien-glow-bullet.scm | 112 ++++++++++++++
scripts/alien-glow-button.scm | 168 ++++++++++++++++++++
scripts/alien-glow-logo.scm | 118 +++++++++++++++
scripts/alien-neon-logo.scm | 187 +++++++++++++++++++++++
scripts/basic1-logo.scm | 106 +++++++++++++
scripts/basic2-logo.scm | 128 ++++++++++++++++
scripts/beveled-button.scm | 160 +++++++++++++++++++
scripts/beveled-pattern-arrow.scm | 161 ++++++++++++++++++++
scripts/beveled-pattern-bullet.scm | 96 ++++++++++++
scripts/beveled-pattern-button.scm | 135 +++++++++++++++++
scripts/beveled-pattern-heading.scm | 121 +++++++++++++++
scripts/beveled-pattern-hrule.scm | 89 +++++++++++
scripts/blended-logo.scm | 206 +++++++++++++++++++++++++
scripts/bovinated-logo.scm | 140 +++++++++++++++++
scripts/camo.scm | 111 ++++++++++++++
scripts/carved-logo.scm | 179 ++++++++++++++++++++++
scripts/chalk.scm | 136 +++++++++++++++++
scripts/chip-away.scm | 206 +++++++++++++++++++++++++
scripts/chrome-logo.scm | 133 ++++++++++++++++
scripts/comic-logo.scm | 169 +++++++++++++++++++++
scripts/coolmetal-logo.scm | 193 +++++++++++++++++++++++
scripts/crystal-logo.scm | 228 ++++++++++++++++++++++++++++
scripts/flatland.scm | 75 +++++++++
scripts/frosty-logo.scm | 210 +++++++++++++++++++++++++
scripts/glossy.scm | 295 ++++++++++++++++++++++++++++++++++++
scripts/glowing-logo.scm | 122 +++++++++++++++
scripts/gradient-bevel-logo.scm | 148 ++++++++++++++++++
scripts/i26-gunya2.scm | 107 +++++++++++++
scripts/land.scm | 91 +++++++++++
scripts/neon-logo.scm | 295 ++++++++++++++++++++++++++++++++++++
scripts/news-text.scm | 94 ++++++++++++
scripts/pupi-button.scm | 212 ++++++++++++++++++++++++++
scripts/rendermap.scm | 94 ++++++++++++
scripts/sota-chrome-logo.scm | 224 +++++++++++++++++++++++++++
scripts/speed-text.scm | 101 ++++++++++++
scripts/starscape-logo.scm | 152 +++++++++++++++++++
scripts/swirltile.scm | 69 +++++++++
scripts/swirly-pattern.scm | 94 ++++++++++++
scripts/t-o-p-logo.scm | 155 +++++++++++++++++++
scripts/text-circle.scm | 223 +++++++++++++++++++++++++++
scripts/textured-logo.scm | 178 ++++++++++++++++++++++
scripts/title-header.scm | 178 ++++++++++++++++++++++
scripts/truchet.scm | 180 ++++++++++++++++++++++
50 files changed, 7353 insertions(+), 1 deletion(-)
---
diff --git a/Makefile.am b/Makefile.am
index 8c6f276..704810a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,3 +1,3 @@
## Process this file with automake to produce Makefile.in
-SUBDIRS = brushes patterns
+SUBDIRS = brushes patterns scripts
diff --git a/configure.in b/configure.in
index d459e9d..3dc19b7 100644
--- a/configure.in
+++ b/configure.in
@@ -26,6 +26,7 @@ brushes/Geometry/Makefile
brushes/Splatters/Makefile
brushes/Texture/Makefile
patterns/Makefile
+scripts/Makefile
])
AC_OUTPUT
diff --git a/scripts/3d-outline.scm b/scripts/3d-outline.scm
new file mode 100644
index 0000000..db3cf7f
--- /dev/null
+++ b/scripts/3d-outline.scm
@@ -0,0 +1,185 @@
+; 3d-outlined-patterned-shadowed-and-bump-mapped-logo :)
+; creates outlined border of a text with patterns
+;
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; 3d-outline creates outlined border of a text with patterns
+; Copyright (C) 1998 Hrvoje Horvat
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+(define (apply-3d-outline-logo-effect img
+ logo-layer
+ text-pattern
+ outline-blur-radius
+ shadow-blur-radius
+ bump-map-blur-radius
+ noninteractive
+ s-offset-x
+ s-offset-y)
+ (let* (
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (bg-layer (car (gimp-layer-new img width height
+ RGB-IMAGE "Background" 100 NORMAL-MODE)))
+ (pattern-layer (car (gimp-layer-new img width height
+ RGBA-IMAGE "Pattern" 100 NORMAL-MODE)))
+ (alpha-layer 0)
+ (shadow-layer 0)
+ (pattern-mask 0)
+ (floating-sel 0)
+ )
+
+ (gimp-context-push)
+
+ (gimp-selection-none img)
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img pattern-layer bg-layer)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-edit-clear pattern-layer)
+ (gimp-layer-set-lock-alpha logo-layer TRUE)
+ (gimp-context-set-foreground '(0 0 0))
+ (gimp-edit-fill logo-layer FOREGROUND-FILL)
+ (gimp-layer-set-lock-alpha logo-layer FALSE)
+ (plug-in-gauss-iir RUN-NONINTERACTIVE img logo-layer outline-blur-radius TRUE TRUE)
+
+ (gimp-item-set-visible pattern-layer FALSE)
+ (set! alpha-layer (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
+ (plug-in-edge RUN-NONINTERACTIVE img alpha-layer 2 1 0)
+ (gimp-item-set-name alpha-layer "Bump map")
+ (set! shadow-layer (car (gimp-layer-copy alpha-layer TRUE)))
+ (gimp-item-set-name shadow-layer "Edges")
+ (script-fu-util-image-add-layers img shadow-layer)
+ (plug-in-gauss-iir RUN-NONINTERACTIVE img alpha-layer bump-map-blur-radius TRUE TRUE)
+
+ (gimp-selection-all img)
+ (gimp-context-set-pattern text-pattern)
+ (gimp-edit-bucket-fill pattern-layer
+ PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
+ (plug-in-bump-map noninteractive img pattern-layer alpha-layer
+ 110.0 45.0 4 0 0 0 0 TRUE FALSE 0)
+
+ (set! pattern-mask (car (gimp-layer-create-mask pattern-layer ADD-ALPHA-MASK)))
+ (gimp-layer-add-mask pattern-layer pattern-mask)
+
+ (gimp-selection-all img)
+ (gimp-edit-copy shadow-layer)
+ (set! floating-sel (car (gimp-edit-paste pattern-mask FALSE)))
+ (gimp-floating-sel-anchor floating-sel)
+
+ (gimp-layer-remove-mask pattern-layer MASK-APPLY)
+ (gimp-invert shadow-layer)
+ (gimp-item-set-name shadow-layer "Drop shadow")
+ (plug-in-gauss-iir RUN-NONINTERACTIVE img shadow-layer shadow-blur-radius TRUE TRUE)
+
+ (gimp-drawable-offset shadow-layer
+ FALSE OFFSET-BACKGROUND s-offset-x s-offset-y)
+
+ (gimp-item-set-visible alpha-layer FALSE)
+ (gimp-item-set-visible pattern-layer TRUE)
+ ;;(set! final (car (gimp-image-flatten img)))
+
+ (gimp-context-pop)
+ )
+)
+
+(define (script-fu-3d-outline-logo-alpha img
+ logo-layer
+ text-pattern
+ outline-blur-radius
+ shadow-blur-radius
+ bump-map-blur-radius
+ noninteractive
+ s-offset-x
+ s-offset-y)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-3d-outline-logo-effect img logo-layer text-pattern
+ outline-blur-radius shadow-blur-radius
+ bump-map-blur-radius noninteractive
+ s-offset-x s-offset-y)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-3d-outline-logo-alpha"
+ _"3D _Outline..."
+ _"Outline the selected region (or alpha) with a pattern and add a drop shadow"
+ "Hrvoje Horvat (hhorvat open hr)"
+ "Hrvoje Horvat"
+ "07 April, 1998"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-PATTERN _"Pattern" "Parque #1"
+ SF-ADJUSTMENT _"Outline blur radius" '(5 1 200 1 10 0 1)
+ SF-ADJUSTMENT _"Shadow blur radius" '(10 1 200 1 10 0 1)
+ SF-ADJUSTMENT _"Bumpmap (alpha layer) blur radius" '(5 1 200 1 10 0 1)
+ SF-TOGGLE _"Default bumpmap settings" TRUE
+ SF-ADJUSTMENT _"Shadow X offset" '(0 0 200 1 5 0 1)
+ SF-ADJUSTMENT _"Shadow Y offset" '(0 0 200 1 5 0 1)
+)
+
+(script-fu-menu-register "script-fu-3d-outline-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-3d-outline-logo text-pattern
+ text
+ size
+ font
+ outline-blur-radius
+ shadow-blur-radius
+ bump-map-blur-radius
+ noninteractive
+ s-offset-x
+ s-offset-y)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text 30 TRUE size PIXELS font)))
+ )
+ (gimp-image-undo-disable img)
+ (apply-3d-outline-logo-effect img text-layer text-pattern
+ outline-blur-radius shadow-blur-radius
+ bump-map-blur-radius noninteractive
+ s-offset-x s-offset-y)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-3d-outline-logo"
+ _"3D _Outline..."
+ _"Create a logo with outlined text and a drop shadow"
+ "Hrvoje Horvat (hhorvat open hr)"
+ "Hrvoje Horvat"
+ "07 April, 1998"
+ ""
+ SF-PATTERN _"Pattern" "Parque #1"
+ SF-STRING _"Text" "GIMP"
+ SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
+ SF-FONT _"Font" "RoostHeavy"
+ SF-ADJUSTMENT _"Outline blur radius" '(5 1 200 1 10 0 1)
+ SF-ADJUSTMENT _"Shadow blur radius" '(10 1 200 1 10 0 1)
+ SF-ADJUSTMENT _"Bumpmap (alpha layer) blur radius" '(5 1 200 1 10 0 1)
+ SF-TOGGLE _"Default bumpmap settings" TRUE
+ SF-ADJUSTMENT _"Shadow X offset" '(0 0 200 1 5 0 1)
+ SF-ADJUSTMENT _"Shadow Y offset" '(0 0 200 1 5 0 1)
+)
+
+(script-fu-menu-register "script-fu-3d-outline-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/3dTruchet.scm b/scripts/3dTruchet.scm
new file mode 100644
index 0000000..afbf64b
--- /dev/null
+++ b/scripts/3dTruchet.scm
@@ -0,0 +1,242 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+;
+; 3dTruchet - a script to create Truchet patterns
+; by Adrian Likins <aklikins eos ncsu edu>
+; http://www4.ncsu.edu/~aklikins/
+; version about .8 give or take
+;
+; Lots of thanks to Quartic for his help.
+;
+;
+; The utility of this script is left as an exercise for the reader.
+
+(define (center-ellipse img
+ cx
+ cy
+ rx
+ ry
+ op
+ aa
+ feather
+ frad)
+ (gimp-context-push)
+ (gimp-context-set-antialias aa)
+ (gimp-context-set-feather feather)
+ (gimp-context-set-feather-radius frad frad)
+ (gimp-image-select-ellipse img op (- cx rx) (- cy ry) (+ rx rx) (+ ry ry))
+ (gimp-context-pop)
+)
+
+(define (use-tile img
+ drawable
+ height
+ width
+ img2
+ drawable2
+ xoffset
+ yoffset)
+ (gimp-edit-copy drawable2)
+ (let (
+ (floating-sel (car (gimp-edit-paste drawable FALSE)))
+ )
+ (gimp-layer-set-offsets floating-sel xoffset yoffset)
+ (gimp-floating-sel-anchor floating-sel)
+ )
+)
+
+
+(define (create-tile img
+ drawable1
+ drawable2
+ size
+ thickness
+ backcolor
+ begincolor
+ endcolor
+ supersample)
+ (let* (
+ (half-thickness (/ thickness 2))
+ (outer-radius (+ (/ size 2) half-thickness))
+ (inner-radius (- (/ size 2) half-thickness))
+ )
+
+ (gimp-selection-all img)
+ (gimp-context-set-background backcolor)
+ (gimp-edit-fill drawable1 BACKGROUND-FILL)
+
+ (let* (
+ (tempSize (* size 3))
+ (temp-img (car (gimp-image-new tempSize tempSize RGB)))
+ (temp-draw (car (gimp-layer-new temp-img tempSize tempSize
+ RGB-IMAGE "Jabar" 100 NORMAL-MODE)))
+ (temp-draw2 (car (gimp-layer-new temp-img tempSize tempSize
+ RGB-IMAGE "Jabar" 100 NORMAL-MODE)))
+ )
+
+ (gimp-image-undo-disable temp-img)
+ (gimp-image-insert-layer temp-img temp-draw 0 0)
+ (gimp-image-insert-layer temp-img temp-draw2 0 0)
+ (gimp-context-set-background backcolor)
+ (gimp-edit-fill temp-draw BACKGROUND-FILL)
+ (gimp-edit-fill temp-draw2 BACKGROUND-FILL)
+
+ ;weird aint it
+ (gimp-context-set-background begincolor)
+ (gimp-context-set-foreground endcolor)
+
+ (center-ellipse temp-img size size outer-radius outer-radius
+ CHANNEL-OP-REPLACE TRUE FALSE 0)
+ (center-ellipse temp-img size size inner-radius inner-radius
+ CHANNEL-OP-SUBTRACT TRUE FALSE 0)
+
+ (center-ellipse temp-img (* size 2) (* size 2) outer-radius outer-radius
+ CHANNEL-OP-ADD TRUE FALSE 0)
+ (center-ellipse temp-img (* size 2) (* size 2) inner-radius inner-radius
+ CHANNEL-OP-SUBTRACT TRUE FALSE 0)
+
+ (gimp-edit-blend temp-draw FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-SHAPEBURST-ANGULAR 100 0 REPEAT-NONE FALSE
+ supersample 3 0.2 TRUE
+ size size (* size 2) (/ size 2))
+
+ (center-ellipse temp-img size (* size 2) outer-radius outer-radius
+ CHANNEL-OP-REPLACE TRUE FALSE 0)
+ (center-ellipse temp-img size (* size 2) inner-radius inner-radius
+ CHANNEL-OP-SUBTRACT TRUE FALSE 0)
+
+ (center-ellipse temp-img (* size 2) size outer-radius outer-radius
+ CHANNEL-OP-ADD TRUE FALSE 0)
+ (center-ellipse temp-img (* size 2) size inner-radius inner-radius
+ CHANNEL-OP-SUBTRACT TRUE FALSE 0)
+
+ ;(gimp-edit-fill temp-img temp-draw2 BACKGROUND-FILL)
+
+ (gimp-edit-blend temp-draw2 FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-SHAPEBURST-ANGULAR 100 0 REPEAT-NONE FALSE
+ supersample 3 0.2 TRUE
+ size size (* size 2) (* size 2))
+
+ (gimp-selection-none temp-img)
+
+ (gimp-image-resize temp-img size size (- size) (- size))
+ ; woo hoo it works....finally...
+
+
+ (gimp-selection-all temp-img)
+ (gimp-edit-copy temp-draw)
+ (let ((floating-sel (car (gimp-edit-paste drawable2 FALSE))))
+ (gimp-floating-sel-anchor floating-sel))
+
+ (gimp-edit-copy temp-draw2)
+ (let ((floating-sel (car (gimp-edit-paste drawable1 FALSE))))
+ (gimp-floating-sel-anchor floating-sel))
+
+ ;(let ((drawble (car (gimp-drawable-transform-flip-simple img drawable1
+ ; ORIENTATION-HORIZONTAL
+ ; TRUE 0 TRUE)))))
+
+
+ ;(gimp-display-new temp-img)
+ (gimp-image-delete temp-img)
+ )
+ )
+)
+
+
+(define (script-fu-3dtruchet size
+ thickness
+ backcolor
+ begincolor
+ endcolor
+ supersample
+ xtiles
+ ytiles)
+ (let* (
+ (width (* size xtiles))
+ (height (* size ytiles))
+ (img (car (gimp-image-new width height RGB)))
+ (tile (car (gimp-image-new size size RGB)))
+ (layer-one (car (gimp-layer-new img width height
+ RGB-IMAGE "Rambis" 100 NORMAL-MODE)))
+ (tiledraw1 (car (gimp-layer-new tile size size
+ RGB-IMAGE "Johnson" 100 NORMAL-MODE)))
+ (tiledraw2 (car (gimp-layer-new tile size size
+ RGB-IMAGE "Cooper" 100 NORMAL-MODE)))
+ (Xindex 0)
+ (Yindex 0)
+ )
+
+ (gimp-context-push)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-undo-disable tile)
+
+ (gimp-image-insert-layer img layer-one 0 0)
+ (gimp-image-insert-layer tile tiledraw1 0 0)
+ (gimp-image-insert-layer tile tiledraw2 0 0)
+
+ ;just to look a little better
+ (gimp-selection-all img)
+ (gimp-context-set-background backcolor)
+ (gimp-edit-fill layer-one BACKGROUND-FILL)
+ (gimp-selection-none img)
+
+ (create-tile tile tiledraw1 tiledraw2 size thickness
+ backcolor begincolor endcolor supersample)
+
+
+ (while (<= Xindex xtiles)
+ (while (<= Yindex ytiles)
+ (if (= (rand 2) 0)
+ (use-tile img layer-one height width tile
+ tiledraw1 (* Xindex size) (* Yindex size))
+ (use-tile img layer-one height width tile
+ tiledraw2 (* Xindex size) (* Yindex size))
+ )
+ (set! Yindex (+ Yindex 1))
+ )
+ (set! Yindex 0)
+ (set! Xindex (+ Xindex 1))
+ )
+
+ (gimp-image-delete tile)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-3dtruchet"
+ _"3_D Truchet..."
+ _"Create an image filled with a 3D Truchet pattern"
+ "Adrian Likins <aklikins eos ncsu edu>"
+ "Adrian Likins"
+ "1997"
+ ""
+ SF-ADJUSTMENT _"Block size" '(64 5 1000 1 10 0 1)
+ SF-ADJUSTMENT _"Thickness" '(12 2 100 1 10 0 1)
+ SF-COLOR _"Background color" "white"
+ SF-COLOR _"Start blend" "black"
+ SF-COLOR _"End blend" "white"
+ SF-TOGGLE _"Supersample" TRUE
+ SF-ADJUSTMENT _"Number of X tiles" '(5 1 1000 1 10 0 1)
+ SF-ADJUSTMENT _"Number of Y tiles" '(5 1 1000 1 10 0 1)
+)
+
+(script-fu-menu-register "script-fu-3dtruchet"
+ "<Image>/File/Create/Patterns")
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
new file mode 100644
index 0000000..3a05a8a
--- /dev/null
+++ b/scripts/Makefile.am
@@ -0,0 +1,56 @@
+## Process this file with automake to produce Makefile.in
+
+scriptdatadir = $(GIMP_DATA_DIR)/scripts
+
+scripts = \
+ 3d-outline.scm \
+ 3dTruchet.scm \
+ alien-glow-arrow.scm \
+ alien-glow-bar.scm \
+ alien-glow-bullet.scm \
+ alien-glow-button.scm \
+ alien-glow-logo.scm \
+ alien-neon-logo.scm \
+ basic1-logo.scm \
+ basic2-logo.scm \
+ beveled-button.scm \
+ beveled-pattern-arrow.scm \
+ beveled-pattern-bullet.scm \
+ beveled-pattern-button.scm \
+ beveled-pattern-heading.scm \
+ beveled-pattern-hrule.scm \
+ blended-logo.scm \
+ bovinated-logo.scm \
+ camo.scm \
+ carved-logo.scm \
+ chalk.scm \
+ chip-away.scm \
+ chrome-logo.scm \
+ comic-logo.scm \
+ coolmetal-logo.scm \
+ crystal-logo.scm \
+ flatland.scm \
+ frosty-logo.scm \
+ glossy.scm \
+ glowing-logo.scm \
+ gradient-bevel-logo.scm \
+ i26-gunya2.scm \
+ land.scm \
+ neon-logo.scm \
+ news-text.scm \
+ pupi-button.scm \
+ rendermap.scm \
+ sota-chrome-logo.scm \
+ speed-text.scm \
+ starscape-logo.scm \
+ swirltile.scm \
+ swirly-pattern.scm \
+ t-o-p-logo.scm \
+ text-circle.scm \
+ textured-logo.scm \
+ title-header.scm \
+ truchet.scm
+
+scriptdata_DATA = $(scripts)
+
+EXTRA_DIST = $(scripts)
diff --git a/scripts/alien-glow-arrow.scm b/scripts/alien-glow-arrow.scm
new file mode 100644
index 0000000..9eb8a3d
--- /dev/null
+++ b/scripts/alien-glow-arrow.scm
@@ -0,0 +1,189 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Alien Glow themed arrows for web pages
+; Copyright (c) 1997 Adrian Likins
+; aklikins eos ncsu edu
+;
+;
+; Based on code from
+; Federico Mena Quintero
+; federico nuclecu unam mx
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+(define (script-fu-alien-glow-right-arrow size
+ orientation
+ glow-color
+ bg-color
+ flatten)
+
+ ; some local helper functions, better to not define globally,
+ ; since otherwise the definitions could be clobbered by other scripts.
+ (define (map proc seq)
+ (if (null? seq)
+ '()
+ (cons (proc (car seq))
+ (map proc (cdr seq))
+ )
+ )
+ )
+
+ (define (for-each proc seq)
+ (if (not (null? seq))
+ (begin
+ (proc (car seq))
+ (for-each proc (cdr seq))
+ )
+ )
+ )
+
+ (define (make-point x y)
+ (cons x y)
+ )
+
+ (define (point-x p)
+ (car p)
+ )
+
+ (define (point-y p)
+ (cdr p)
+ )
+
+ (define (point-list->double-array point-list)
+ (define (convert points array pos)
+ (if (not (null? points))
+ (begin
+ (aset array (* 2 pos) (point-x (car points)))
+ (aset array (+ 1 (* 2 pos)) (point-y (car points)))
+ (convert (cdr points) array (+ pos 1))
+ )
+ )
+ )
+
+ (let* (
+ (how-many (length point-list))
+ (a (cons-array (* 2 how-many) 'double))
+ )
+ (convert point-list a 0)
+ a
+ )
+ )
+
+ (define (make-arrow size
+ offset)
+ (list (make-point offset offset)
+ (make-point (- size offset) (/ size 2))
+ (make-point offset (- size offset))
+ )
+ )
+
+
+ (define (rotate-points points size orientation)
+ (map (lambda (p)
+ (let ((px (point-x p))
+ (py (point-y p)))
+ (cond ((= orientation 0) (make-point px py)) ; right
+ ((= orientation 1) (make-point (- size px) py)) ; left
+ ((= orientation 2) (make-point py (- size px))) ; up
+ ((= orientation 3) (make-point py px)) ; down
+ )
+ )
+ )
+ points
+ )
+ )
+
+
+ ; the main function
+
+ (let* (
+ (img (car (gimp-image-new size size RGB)))
+ (grow-amount (/ size 12))
+ (blur-radius (/ size 3))
+ (offset (/ size 6))
+ (ruler-layer (car (gimp-layer-new img
+ size size RGBA-IMAGE
+ _"Arrow" 100 NORMAL-MODE)))
+ (glow-layer (car (gimp-layer-new img
+ size size RGBA-IMAGE
+ _"Alien Glow" 100 NORMAL-MODE)))
+ (bg-layer (car (gimp-layer-new img
+ size size RGB-IMAGE
+ _"Background" 100 NORMAL-MODE)))
+ (big-arrow (point-list->double-array
+ (rotate-points (make-arrow size offset)
+ size orientation)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-undo-disable img)
+ ;(gimp-image-resize img (+ length height) (+ height height) 0 0)
+ (gimp-image-insert-layer img bg-layer 0 1)
+ (gimp-image-insert-layer img glow-layer 0 -1)
+ (gimp-image-insert-layer img ruler-layer 0 -1)
+
+ (gimp-edit-clear glow-layer)
+ (gimp-edit-clear ruler-layer)
+
+ (gimp-image-select-polygon img CHANNEL-OP-REPLACE 6 big-arrow)
+
+ (gimp-context-set-foreground '(103 103 103))
+ (gimp-context-set-background '(0 0 0))
+
+ (gimp-edit-blend ruler-layer FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-SHAPEBURST-ANGULAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ 0 0 size size)
+
+ (gimp-selection-grow img grow-amount)
+ (gimp-context-set-foreground glow-color)
+ (gimp-edit-fill glow-layer FOREGROUND-FILL)
+
+ (gimp-selection-none img)
+
+
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img glow-layer blur-radius TRUE TRUE)
+
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+
+ (if (= flatten TRUE)
+ (gimp-image-flatten img)
+ )
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-alien-glow-right-arrow"
+ _"_Arrow..."
+ _"Create an arrow graphic with an eerie glow for web pages"
+ "Adrian Likins"
+ "Adrian Likins"
+ "1997"
+ ""
+ SF-ADJUSTMENT _"Size" '(32 5 150 1 10 0 1)
+ SF-OPTION _"Orientation" '(_"Right" _"Left" _"Up" _"Down")
+ SF-COLOR _"Glow color" '(63 252 0)
+ SF-COLOR _"Background color" "black"
+ SF-TOGGLE _"Flatten image" TRUE
+)
+
+(script-fu-menu-register "script-fu-alien-glow-right-arrow"
+ "<Image>/File/Create/Web Page Themes/Alien Glow")
diff --git a/scripts/alien-glow-bar.scm b/scripts/alien-glow-bar.scm
new file mode 100644
index 0000000..19339f3
--- /dev/null
+++ b/scripts/alien-glow-bar.scm
@@ -0,0 +1,100 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Alien Glow themed hrule for web pages
+; Copyright (c) 1997 Adrian Likins
+; aklikins eos ncsu edu
+;
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+(define (script-fu-alien-glow-horizontal-ruler length
+ height
+ glow-color
+ bg-color
+ flatten)
+ (let* (
+ (img (car (gimp-image-new height length RGB)))
+ (border (/ height 4))
+ (ruler-layer (car (gimp-layer-new img
+ (+ length height) (+ height height)
+ RGBA-IMAGE _"Bar" 100 NORMAL-MODE)))
+ (glow-layer (car (gimp-layer-new img
+ (+ length height) (+ height height)
+ RGBA-IMAGE _"Alien Glow" 100 NORMAL-MODE)))
+ (bg-layer (car (gimp-layer-new img
+ (+ length height) (+ height height)
+ RGB-IMAGE _"Background" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-feather FALSE)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-resize img (+ length height) (+ height height) 0 0)
+ (gimp-image-insert-layer img bg-layer 0 1)
+ (gimp-image-insert-layer img glow-layer 0 -1)
+ (gimp-image-insert-layer img ruler-layer 0 -1)
+
+ ; (gimp-layer-set-lock-alpha ruler-layer TRUE)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-edit-clear glow-layer)
+ (gimp-edit-clear ruler-layer)
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE
+ (/ height 2) (/ height 2)
+ length height)
+ (gimp-context-set-foreground '(79 79 79))
+ (gimp-context-set-background '(0 0 0))
+
+ (gimp-edit-blend ruler-layer FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-SHAPEBURST-ANGULAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ 0 0 height height)
+
+ (gimp-context-set-foreground glow-color)
+ (gimp-selection-grow img border)
+ (gimp-edit-fill glow-layer FOREGROUND-FILL)
+ (gimp-selection-none img)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img glow-layer 25 TRUE TRUE)
+
+ (gimp-image-undo-enable img)
+
+ (if (= flatten TRUE)
+ (gimp-image-flatten img))
+
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(script-fu-register "script-fu-alien-glow-horizontal-ruler"
+ _"_Hrule..."
+ _"Create an Hrule graphic with an eerie glow for web pages"
+ "Adrian Likins"
+ "Adrian Likins"
+ "1997"
+ ""
+ SF-ADJUSTMENT _"Bar length" '(480 5 1500 1 10 0 1)
+ SF-ADJUSTMENT _"Bar height" '(16 1 100 1 10 0 1)
+ SF-COLOR _"Glow color" '(63 252 0)
+ SF-COLOR _"Background color" "black"
+ SF-TOGGLE _"Flatten image" TRUE
+)
+
+(script-fu-menu-register "script-fu-alien-glow-horizontal-ruler"
+ "<Image>/File/Create/Web Page Themes/Alien Glow")
diff --git a/scripts/alien-glow-bullet.scm b/scripts/alien-glow-bullet.scm
new file mode 100644
index 0000000..e430c37
--- /dev/null
+++ b/scripts/alien-glow-bullet.scm
@@ -0,0 +1,112 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Alien Glow themed bullets for web pages
+; Copyright (c) 1997 Adrian Likins
+; aklikins eos ncsu edu
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+(define (script-fu-alien-glow-bullet radius
+ glow-color
+ bg-color
+ flatten)
+
+ (define (center-ellipse img cx cy rx ry op aa feather frad)
+ (gimp-context-push)
+ (gimp-context-set-antialias aa)
+ (gimp-context-set-feather feather)
+ (gimp-context-set-feather-radius frad frad)
+ (gimp-image-select-ellipse img op (- cx rx) (- cy ry) (+ rx rx) (+ ry ry))
+ (gimp-context-pop)
+ )
+
+
+ (let* (
+ (img (car (gimp-image-new radius radius RGB)))
+ (border (/ radius 4))
+ (diameter (* radius 2))
+ (half-radius (/ radius 2))
+ (blend-start (+ half-radius (/ half-radius 2)))
+ (bullet-layer (car (gimp-layer-new img
+ diameter diameter RGBA-IMAGE
+ _"Bullet" 100 NORMAL-MODE)))
+ (glow-layer (car (gimp-layer-new img diameter diameter RGBA-IMAGE
+ _"Alien Glow" 100 NORMAL-MODE)))
+ (bg-layer (car (gimp-layer-new img diameter diameter RGB-IMAGE
+ _"Background" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-resize img diameter diameter 0 0)
+ (gimp-image-insert-layer img bg-layer 0 1)
+ (gimp-image-insert-layer img glow-layer 0 -1)
+ (gimp-image-insert-layer img bullet-layer 0 -1)
+
+ ; (gimp-layer-set-lock-alpha ruler-layer TRUE)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-edit-clear glow-layer)
+ (gimp-edit-clear bullet-layer)
+
+ (center-ellipse img radius radius half-radius half-radius
+ CHANNEL-OP-REPLACE TRUE FALSE 0)
+
+ ; (gimp-rect-select img (/ height 2) (/ height 2) length height CHANNEL-OP-REPLACE FALSE 0)
+ (gimp-context-set-foreground '(90 90 90))
+ (gimp-context-set-background '(0 0 0))
+
+ (gimp-edit-blend bullet-layer FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-RADIAL 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ blend-start blend-start
+ (+ half-radius radius) (+ half-radius radius))
+
+ (gimp-context-set-foreground glow-color)
+ (gimp-selection-grow img border)
+ (gimp-selection-feather img border)
+ (gimp-edit-fill glow-layer FOREGROUND-FILL)
+ (gimp-selection-none img)
+ (if (>= radius 16)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img glow-layer 25 TRUE TRUE)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img glow-layer 12 TRUE TRUE)
+ )
+
+ (if (= flatten TRUE)
+ (gimp-image-flatten img)
+ )
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-alien-glow-bullet"
+ _"_Bullet..."
+ _"Create a bullet graphic with an eerie glow for web pages"
+ "Adrian Likins"
+ "Adrian Likins"
+ "1997"
+ ""
+ SF-ADJUSTMENT _"Radius" '(16 1 100 1 10 0 1)
+ SF-COLOR _"Glow color" '(63 252 0)
+ SF-COLOR _"Background color" "black"
+ SF-TOGGLE _"Flatten image" TRUE
+)
+
+(script-fu-menu-register "script-fu-alien-glow-bullet"
+ "<Image>/File/Create/Web Page Themes/Alien Glow")
diff --git a/scripts/alien-glow-button.scm b/scripts/alien-glow-button.scm
new file mode 100644
index 0000000..1787181
--- /dev/null
+++ b/scripts/alien-glow-button.scm
@@ -0,0 +1,168 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Alien Glow themed button
+; Copyright (c) 1997 Adrian Likins
+; aklikins eos ncsu edu
+;
+; based on code from Frederico Mena Quintero (Quartic)
+; federico nuclecu unam mx
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+(define (script-fu-alien-glow-button text
+ font
+ size
+ text-color
+ glow-color
+ bg-color
+ padding
+ glow-radius
+ flatten)
+
+ (define (text-width extents)
+ (car extents))
+
+ (define (text-height extents)
+ (cadr extents))
+
+ (define (text-ascent extents)
+ (caddr extents))
+
+ (define (text-descent extents)
+ (cadr (cddr extents)))
+
+ (define (blend-bumpmap img
+ drawable
+ x1
+ y1
+ x2
+ y2)
+ (gimp-edit-blend drawable FG-BG-RGB-MODE DARKEN-ONLY-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ x1 y1 x2 y2)
+ )
+
+ (let* (
+ (text-extents (gimp-text-get-extents-fontname text
+ size
+ PIXELS
+ font))
+ (ascent (text-ascent text-extents))
+ (descent (text-descent text-extents))
+
+ (img-width (+ (* 2 padding)
+ (text-width text-extents)))
+ (img-height (+ (* 2 padding)
+ (+ ascent descent)))
+ (layer-height img-height)
+ (layer-width img-width)
+ (img-width (+ img-width glow-radius))
+ (img-height (+ img-height glow-radius))
+ (img (car (gimp-image-new img-width img-height RGB)))
+ (bg-layer (car (gimp-layer-new img
+ img-width img-height RGBA-IMAGE
+ _"Background" 100 NORMAL-MODE)))
+ (glow-layer (car (gimp-layer-new img
+ img-width img-height RGBA-IMAGE
+ _"Glow" 100 NORMAL-MODE)))
+ (button-layer (car (gimp-layer-new img
+ layer-width layer-height RGBA-IMAGE
+ _"Button" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-feather FALSE)
+
+ (gimp-image-undo-disable img)
+
+ ; Create bumpmap layer
+
+ (gimp-image-insert-layer img bg-layer 0 -1)
+ (gimp-context-set-foreground '(0 0 0))
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-image-insert-layer img glow-layer 0 -1)
+
+ ; Create text layer
+
+ (gimp-image-insert-layer img button-layer 0 -1)
+ (gimp-layer-set-offsets button-layer (/ glow-radius 2) (/ glow-radius 2))
+ (gimp-selection-none img)
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 0 0 img-width img-height)
+ (gimp-context-set-foreground '(100 100 100))
+ (gimp-context-set-background '(0 0 0))
+
+ (gimp-edit-blend button-layer FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-SHAPEBURST-ANGULAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ 0 0 img-height img-width)
+
+ (gimp-edit-clear glow-layer)
+
+ (gimp-image-select-rectangle img
+ CHANNEL-OP-REPLACE
+ (/ glow-radius 4)
+ (/ glow-radius 4)
+ (- img-width (/ glow-radius 2))
+ (- img-height (/ glow-radius 2)))
+
+ (gimp-context-set-foreground glow-color)
+ (gimp-edit-fill glow-layer FOREGROUND-FILL)
+ (gimp-selection-none img)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img glow-layer glow-radius TRUE TRUE)
+ (gimp-context-set-foreground text-color)
+ (let (
+ (textl (car (gimp-text-fontname
+ img -1 0 0 text 0 TRUE size PIXELS font)))
+ )
+ (gimp-layer-set-offsets textl
+ (+ padding (/ glow-radius 2))
+ (+ (+ padding descent) (/ glow-radius 2)))
+ )
+ ; Done
+ (gimp-selection-none img)
+ (gimp-image-undo-enable img)
+ (if (= flatten TRUE)
+ (gimp-image-flatten img)
+ )
+
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-alien-glow-button"
+ _"B_utton..."
+ _"Create a button graphic with an eerie glow for web pages"
+ "Adrian Likins"
+ "Adrian Likins"
+ "July 1997"
+ ""
+ SF-STRING _"Text" "Hello world!"
+ SF-FONT _"Font" "Sans Bold"
+ SF-ADJUSTMENT _"Font size (pixels)" '(22 2 100 1 1 0 1)
+ SF-COLOR _"Text color" "black"
+ SF-COLOR _"Glow color" '(63 252 0)
+ SF-COLOR _"Background color" "black"
+ SF-ADJUSTMENT _"Padding" '(6 1 100 1 10 0 1)
+ SF-ADJUSTMENT _"Glow radius" '(10 1 200 1 10 0 1)
+ SF-TOGGLE _"Flatten image" TRUE
+)
+
+(script-fu-menu-register "script-fu-alien-glow-button"
+ "<Image>/File/Create/Web Page Themes/Alien Glow")
diff --git a/scripts/alien-glow-logo.scm b/scripts/alien-glow-logo.scm
new file mode 100644
index 0000000..0430768
--- /dev/null
+++ b/scripts/alien-glow-logo.scm
@@ -0,0 +1,118 @@
+; ALIEN-GLOW
+; Create a text effect that simulates an eerie alien glow around text
+
+(define (apply-alien-glow-logo-effect img
+ logo-layer
+ size
+ glow-color)
+ (let* (
+ (border (/ size 4))
+ (grow (/ size 30))
+ (feather (/ size 4))
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (bg-layer (car (gimp-layer-new img
+ width height RGB-IMAGE
+ "Background" 100 NORMAL-MODE)))
+ (glow-layer (car (gimp-layer-new img
+ width height RGBA-IMAGE
+ "Alien Glow" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-selection-none img)
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img glow-layer bg-layer)
+ (gimp-layer-set-lock-alpha logo-layer TRUE)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-edit-clear glow-layer)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-selection-grow img grow)
+ (gimp-selection-feather img feather)
+ (gimp-context-set-foreground glow-color)
+ (gimp-edit-fill glow-layer FOREGROUND-FILL)
+ (gimp-selection-none img)
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-context-set-foreground '(79 79 79))
+
+ (gimp-edit-blend logo-layer FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-SHAPEBURST-ANGULAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ 0 0 1 1)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(define (script-fu-alien-glow-logo-alpha img
+ logo-layer
+ size
+ glow-color)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-alien-glow-logo-effect img logo-layer size glow-color)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-alien-glow-logo-alpha"
+ _"Alien _Glow..."
+ _"Add an eerie glow around the selected region (or alpha)"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1997"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT _"Glow size (pixels * 4)" '(150 2 1000 1 10 0 1)
+ SF-COLOR _"Glow color" '(63 252 0)
+)
+
+(script-fu-menu-register "script-fu-alien-glow-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-alien-glow-logo text
+ size
+ font
+ glow-color)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (border (/ size 4))
+ (grow (/ size 30))
+ (feather (/ size 4))
+ (text-layer (car (gimp-text-fontname img
+ -1 0 0 text border TRUE
+ size PIXELS font)))
+ (width (car (gimp-drawable-width text-layer)))
+ (height (car (gimp-drawable-height text-layer)))
+ )
+
+ (gimp-image-undo-disable img)
+ (apply-alien-glow-logo-effect img text-layer size glow-color)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-alien-glow-logo"
+ _"Alien _Glow..."
+ _"Create a logo with an alien glow around the text"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1997"
+ ""
+ SF-STRING _"Text" "ALIEN"
+ SF-ADJUSTMENT _"Font size (pixels)" '(150 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Sans Bold"
+ SF-COLOR _"Glow color" '(63 252 0)
+)
+
+(script-fu-menu-register "script-fu-alien-glow-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/alien-neon-logo.scm b/scripts/alien-neon-logo.scm
new file mode 100644
index 0000000..b27f961
--- /dev/null
+++ b/scripts/alien-neon-logo.scm
@@ -0,0 +1,187 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; alien-neon-logo.scm - creates multiple outlines around the letters
+; Copyright (C) 1999-2000 Raphael Quinet <quinet gamers org>
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+;
+; 1999-12-01 First version.
+; 2000-02-19 Do not discard the layer mask so that it can still be edited.
+; 2000-03-08 Adapted the script to my gimp-edit-fill changes.
+; 2000-04-02 Split the script in two parts: one using text, one using alpha.
+; 2000-05-29 More modifications for "Alpha to Logo" using a separate function.
+;
+; To do: use a channel mask for creating the bands, instead of working in the
+; image. gimp-invert would then work on one grayscale channel instead of
+; wasting CPU cycles on three identical R, G, B channels.
+;
+
+(define (apply-alien-neon-logo-effect img
+ logo-layer
+ fg-color
+ bg-color
+ band-size
+ gap-size
+ num-bands
+ do-fade)
+ (let* (
+ (fade-size (- (* (+ band-size gap-size) num-bands) 1))
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
+ (bands-layer (car (gimp-layer-new img width height RGBA-IMAGE "Bands" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img bands-layer bg-layer)
+ (gimp-selection-none img)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill bands-layer BACKGROUND-FILL)
+ ; The text layer is never shown: it is only used to create a selection
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-context-set-foreground '(255 255 255))
+ (gimp-edit-fill bands-layer FOREGROUND-FILL)
+
+ ; Create multiple outlines by growing and inverting the selection
+ ; The bands are black and white because they will be used as a mask.
+ (while (> num-bands 0)
+ (gimp-selection-grow img band-size)
+ (gimp-invert bands-layer)
+ (gimp-selection-grow img gap-size)
+ (gimp-invert bands-layer)
+ (set! num-bands (- num-bands 1))
+ )
+
+ ; The fading effect is obtained by masking the image with a gradient.
+ ; The gradient is created by filling a bordered selection (white->black).
+ (if (= do-fade TRUE)
+ (let ((bands-layer-mask (car (gimp-layer-create-mask bands-layer
+ ADD-BLACK-MASK))))
+ (gimp-layer-add-mask bands-layer bands-layer-mask)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-selection-border img fade-size)
+ (gimp-edit-fill bands-layer-mask FOREGROUND-FILL)
+ (gimp-layer-remove-mask bands-layer MASK-APPLY)))
+
+ ; Transfer the resulting grayscale bands into the layer mask.
+ (let ((bands-layer-mask (car (gimp-layer-create-mask bands-layer
+ ADD-BLACK-MASK))))
+ (gimp-layer-add-mask bands-layer bands-layer-mask)
+ (gimp-selection-none img)
+ (gimp-edit-copy bands-layer)
+ (gimp-floating-sel-anchor (car (gimp-edit-paste bands-layer-mask
+ FALSE))))
+
+ ; Fill the layer with the foreground color. The areas that are not
+ ; masked become visible.
+ (gimp-context-set-foreground fg-color)
+ (gimp-edit-fill bands-layer FOREGROUND-FILL)
+ ;; (gimp-layer-remove-mask bands-layer MASK-APPLY)
+
+ ; Clean up and exit.
+ (gimp-item-set-visible logo-layer 0)
+ (gimp-image-set-active-layer img bands-layer)
+ (gimp-displays-flush)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(define (script-fu-alien-neon-logo-alpha img
+ logo-layer
+ fg-color
+ bg-color
+ band-size
+ gap-size
+ num-bands
+ do-fade)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-alien-neon-logo-effect img logo-layer fg-color bg-color
+ band-size gap-size num-bands do-fade)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-alien-neon-logo-alpha"
+ _"Alien _Neon..."
+ _"Add psychedelic outlines to the selected region (or alpha)"
+ "Raphael Quinet (quinet gamers org)"
+ "Raphael Quinet"
+ "1999-2000"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-COLOR _"Glow color" "green"
+ SF-COLOR _"Background color" "black"
+ SF-ADJUSTMENT _"Width of bands" '(2 1 60 1 10 0 0)
+ SF-ADJUSTMENT _"Width of gaps" '(2 1 60 1 10 0 0)
+ SF-ADJUSTMENT _"Number of bands" '(7 1 100 1 10 0 1)
+ SF-TOGGLE _"Fade away" TRUE
+)
+
+(script-fu-menu-register "script-fu-alien-neon-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-alien-neon-logo text
+ size
+ fontname
+ fg-color
+ bg-color
+ band-size
+ gap-size
+ num-bands
+ do-fade)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (fade-size (- (* (+ band-size gap-size) num-bands) 1))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text (+ fade-size 10) TRUE size PIXELS fontname)))
+ )
+ (gimp-image-undo-disable img)
+ (apply-alien-neon-logo-effect img text-layer fg-color bg-color
+ band-size gap-size num-bands do-fade)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-alien-neon-logo"
+ _"Alien _Neon..."
+ _"Create a logo with psychedelic outlines around the text"
+ "Raphael Quinet (quinet gamers org)"
+ "Raphael Quinet"
+ "1999-2000"
+ ""
+ SF-STRING _"Text" "GIMP"
+ SF-ADJUSTMENT _"Font size (pixels)" '(150 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Blippo"
+ SF-COLOR _"Glow color" "green"
+ SF-COLOR _"Background color" "black"
+ SF-ADJUSTMENT _"Width of bands" '(2 1 60 1 10 0 0)
+ SF-ADJUSTMENT _"Width of gaps" '(2 1 60 1 10 0 0)
+ SF-ADJUSTMENT _"Number of bands" '(7 1 100 1 10 0 1)
+ SF-TOGGLE _"Fade away" TRUE
+)
+
+(script-fu-menu-register "script-fu-alien-neon-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/basic1-logo.scm b/scripts/basic1-logo.scm
new file mode 100644
index 0000000..07f63b2
--- /dev/null
+++ b/scripts/basic1-logo.scm
@@ -0,0 +1,106 @@
+; DROP-SHADOW-LOGO
+; draw the specified text over a background with a drop shadow
+
+(define (apply-basic1-logo-effect img
+ logo-layer
+ bg-color
+ text-color)
+ (let* (
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (bg-layer (car (gimp-layer-new img width height RGBA-IMAGE "Background" 100 NORMAL-MODE)))
+ (shadow-layer (car (gimp-layer-new img width height RGBA-IMAGE "Shadow" 100 MULTIPLY-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-selection-none img)
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img shadow-layer bg-layer)
+ (gimp-context-set-foreground text-color)
+ (gimp-layer-set-lock-alpha logo-layer TRUE)
+ (gimp-edit-fill logo-layer FOREGROUND-FILL)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-edit-clear shadow-layer)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-selection-feather img 7.5)
+ (gimp-edit-fill shadow-layer BACKGROUND-FILL)
+ (gimp-selection-none img)
+ (gimp-context-set-foreground '(255 255 255))
+
+ (gimp-edit-blend logo-layer FG-BG-RGB-MODE MULTIPLY-MODE
+ GRADIENT-RADIAL 100 20 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ 0 0 width height)
+
+ (gimp-layer-translate shadow-layer 3 3)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(define (script-fu-basic1-logo-alpha img
+ logo-layer
+ bg-color
+ text-color)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-basic1-logo-effect img logo-layer bg-color text-color)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-basic1-logo-alpha"
+ _"_Basic I..."
+ _"Add a gradient effect, a drop shadow, and a background to the selected region (or alpha)"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1996"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-COLOR _"Background color" "white"
+ SF-COLOR _"Text color" '(6 6 206)
+)
+
+(script-fu-menu-register "script-fu-basic1-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+(define (script-fu-basic1-logo text
+ size
+ font
+ bg-color
+ text-color)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text 10 TRUE size PIXELS font)))
+ )
+
+ (gimp-image-undo-disable img)
+ (apply-basic1-logo-effect img text-layer bg-color text-color)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-basic1-logo"
+ _"_Basic I..."
+ _"Create a plain text logo with a gradient effect, a drop shadow, and a background"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1996"
+ ""
+ SF-STRING _"Text" "GIMP"
+ SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Dragonwick"
+ SF-COLOR _"Background color" "white"
+ SF-COLOR _"Text color" '(6 6 206)
+)
+
+(script-fu-menu-register "script-fu-basic1-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/basic2-logo.scm b/scripts/basic2-logo.scm
new file mode 100644
index 0000000..1cab076
--- /dev/null
+++ b/scripts/basic2-logo.scm
@@ -0,0 +1,128 @@
+; HIGHLIGHT-DROP-SHADOW-LOGO
+; draw the specified text over a background with a drop shadow and a highlight
+
+(define (apply-basic2-logo-effect img
+ logo-layer
+ bg-color
+ text-color)
+
+ (define (color-highlight color)
+ (let (
+ (r (car color))
+ (g (cadr color))
+ (b (caddr color))
+ )
+
+ (set! r (+ r (* (- 255 r) 0.75)))
+ (set! g (+ g (* (- 255 g) 0.75)))
+ (set! b (+ b (* (- 255 b) 0.75)))
+ (list r g b)
+ )
+ )
+
+ (let* (
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (posx (- (car (gimp-drawable-offsets logo-layer))))
+ (posy (- (cadr (gimp-drawable-offsets logo-layer))))
+ (bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
+ (highlight-layer (car (gimp-layer-copy logo-layer TRUE)))
+ (shadow-layer (car (gimp-layer-new img width height RGBA-IMAGE "Shadow" 100 MULTIPLY-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-selection-none img)
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img highlight-layer shadow-layer bg-layer)
+ (gimp-context-set-foreground text-color)
+ (gimp-layer-set-lock-alpha logo-layer TRUE)
+ (gimp-edit-fill logo-layer FOREGROUND-FILL)
+ (gimp-edit-clear shadow-layer)
+ (gimp-context-set-foreground (color-highlight text-color))
+ (gimp-layer-set-lock-alpha highlight-layer TRUE)
+ (gimp-edit-fill highlight-layer FOREGROUND-FILL)
+ (gimp-context-set-background bg-color)
+ (gimp-drawable-fill bg-layer BACKGROUND-FILL)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-selection-feather img 7.5)
+ (gimp-edit-fill shadow-layer BACKGROUND-FILL)
+ (gimp-selection-none img)
+ (gimp-context-set-foreground '(255 255 255))
+
+ (gimp-edit-blend logo-layer FG-BG-RGB-MODE MULTIPLY-MODE
+ GRADIENT-RADIAL 100 20 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ 0 0 width height)
+
+ (gimp-layer-translate shadow-layer 3 3)
+ (gimp-layer-translate highlight-layer (- posx 2) (- posy 2))
+ (gimp-item-set-name highlight-layer "Highlight")
+
+ (gimp-context-pop)
+ )
+)
+
+(define (script-fu-basic2-logo-alpha img
+ logo-layer
+ bg-color
+ text-color)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-basic2-logo-effect img logo-layer bg-color text-color)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-basic2-logo-alpha"
+ _"B_asic II..."
+ _"Add a shadow and a highlight to the selected region (or alpha)"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1996"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-COLOR _"Background color" "white"
+ SF-COLOR _"Text color" '(206 6 50)
+)
+
+(define (script-fu-basic2-logo text
+ size
+ font
+ bg-color
+ text-color)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text 10 TRUE size PIXELS font)))
+ )
+
+ (gimp-image-undo-disable img)
+ (apply-basic2-logo-effect img text-layer bg-color text-color)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-menu-register "script-fu-basic2-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+(script-fu-register "script-fu-basic2-logo"
+ _"B_asic II..."
+ _"Create a simple logo with a shadow and a highlight"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1996"
+ ""
+ SF-STRING _"Text" "SCRIPT-FU"
+ SF-ADJUSTMENT _"Font size (pixels)" '(150 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Sans Bold"
+ SF-COLOR _"Background color" "white"
+ SF-COLOR _"Text color" '(206 6 50)
+)
+
+(script-fu-menu-register "script-fu-basic2-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/beveled-button.scm b/scripts/beveled-button.scm
new file mode 100644
index 0000000..e1ddbdd
--- /dev/null
+++ b/scripts/beveled-button.scm
@@ -0,0 +1,160 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Button00 --- create a simple beveled Web button
+; Copyright (C) 1997 Federico Mena Quintero
+; federico nuclecu unam mx
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+; ************************************************************************
+; Changed on Feb 4, 1999 by Piet van Oostrum <piet cs uu nl>
+; For use with GIMP 1.1.
+; All calls to gimp-text-* have been converted to use the *-fontname form.
+; The corresponding parameters have been replaced by an SF-FONT parameter.
+; ************************************************************************
+
+
+(define (text-width extents)
+ (car extents))
+
+(define (text-height extents)
+ (cadr extents))
+
+(define (text-ascent extents)
+ (caddr extents))
+
+(define (text-descent extents)
+ (cadr (cddr extents)))
+
+(define (blend-bumpmap img
+ drawable
+ x1
+ y1
+ x2
+ y2)
+ (gimp-edit-blend drawable FG-BG-RGB-MODE DARKEN-ONLY-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ x1 y1 x2 y2))
+
+(define (script-fu-button00 text
+ size
+ font
+ ul-color
+ lr-color
+ text-color
+ padding
+ bevel-width
+ pressed)
+ (let* (
+ (text-extents (gimp-text-get-extents-fontname text
+ size
+ PIXELS
+ font))
+ (ascent (text-ascent text-extents))
+ (descent (text-descent text-extents))
+
+ (img-width (+ (* 2 (+ padding bevel-width))
+ (text-width text-extents)))
+ (img-height (+ (* 2 (+ padding bevel-width))
+ (+ ascent descent)))
+
+ (img (car (gimp-image-new img-width img-height RGB)))
+
+ (bumpmap (car (gimp-layer-new img
+ img-width img-height RGBA-IMAGE
+ _"Bumpmap" 100 NORMAL-MODE)))
+ (gradient (car (gimp-layer-new img
+ img-width img-height RGBA-IMAGE
+ _"Gradient" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-feather FALSE)
+ (gimp-image-undo-disable img)
+
+ ; Create bumpmap layer
+
+ (gimp-image-insert-layer img bumpmap 0 -1)
+ (gimp-context-set-foreground '(0 0 0))
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 0 0 bevel-width img-height)
+ (blend-bumpmap img bumpmap 0 0 (- bevel-width 1) 0)
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 0 0 img-width bevel-width)
+ (blend-bumpmap img bumpmap 0 0 0 (- bevel-width 1))
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE (- img-width bevel-width) 0 bevel-width img-height)
+ (blend-bumpmap img bumpmap (- img-width 1) 0 (- img-width bevel-width) 0)
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 0 (- img-height bevel-width) img-width bevel-width)
+ (blend-bumpmap img bumpmap 0 (- img-height 1) 0 (- img-height bevel-width))
+
+ (gimp-selection-none img)
+
+ ; Create gradient layer
+
+ (gimp-image-insert-layer img gradient 0 -1)
+ (gimp-context-set-foreground ul-color)
+ (gimp-context-set-background lr-color)
+
+ (gimp-edit-blend gradient FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ 0 0 (- img-width 1) (- img-height 1))
+
+ (plug-in-bump-map RUN-NONINTERACTIVE img gradient bumpmap
+ 135 45 bevel-width 0 0 0 0 TRUE pressed 0)
+
+ ; Create text layer
+
+ (gimp-context-set-foreground text-color)
+ (let ((textl (car (gimp-text-fontname
+ img -1 0 0 text 0 TRUE size PIXELS font))))
+ (gimp-layer-set-offsets textl
+ (+ bevel-width padding)
+ (+ bevel-width padding descent)))
+
+ ; Done
+
+ (gimp-selection-none img)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-button00"
+ _"Simple _Beveled Button..."
+ _"Create a simple, beveled button graphic for webpages"
+ "Federico Mena Quintero"
+ "Federico Mena Quintero"
+ "June 1997"
+ ""
+ SF-STRING _"Text" "Hello world!"
+ SF-ADJUSTMENT _"Font size (pixels)" '(16 2 100 1 1 0 1)
+ SF-FONT _"Font" "Sans"
+ SF-COLOR _"Upper-left color" '(0 255 127)
+ SF-COLOR _"Lower-right color" '(0 127 255)
+ SF-COLOR _"Text color" "black"
+ SF-ADJUSTMENT _"Padding" '(2 1 100 1 10 0 1)
+ SF-ADJUSTMENT _"Bevel width" '(4 1 100 1 10 0 1)
+ SF-TOGGLE _"Pressed" FALSE
+)
+
+(script-fu-menu-register "script-fu-button00"
+ "<Image>/File/Create/Buttons")
diff --git a/scripts/beveled-pattern-arrow.scm b/scripts/beveled-pattern-arrow.scm
new file mode 100644
index 0000000..02ea5c3
--- /dev/null
+++ b/scripts/beveled-pattern-arrow.scm
@@ -0,0 +1,161 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Beveled pattern arrow for web pages
+; Copyright (C) 1997 Federico Mena Quintero
+; federico nuclecu unam mx
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+(define (script-fu-beveled-pattern-arrow size orientation pattern)
+
+ (define (make-point x y)
+ (cons x y)
+ )
+
+ (define (point-x p)
+ (car p)
+ )
+
+ (define (point-y p)
+ (cdr p)
+ )
+
+ (define (point-list->double-array point-list)
+ (let* (
+ (how-many (length point-list))
+ (a (cons-array (* 2 how-many) 'double))
+ (count 0)
+ )
+
+ (for-each (lambda (p)
+ (aset a (* count 2) (point-x p))
+ (aset a (+ 1 (* count 2)) (point-y p))
+ (set! count (+ count 1)))
+ point-list
+ )
+ a
+ )
+ )
+
+ (define (rotate-points points size orientation)
+ (map (lambda (p)
+ (let ((px (point-x p))
+ (py (point-y p)))
+ (cond ((= orientation 0) (make-point px py)) ; right
+ ((= orientation 1) (make-point (- size px) py)) ; left
+ ((= orientation 2) (make-point py (- size px))) ; up
+ ((= orientation 3) (make-point py px)) ; down
+ )
+ )
+ )
+ points
+ )
+ )
+
+ (define (make-arrow size offset)
+ (list (make-point offset offset)
+ (make-point (- size offset) (/ size 2))
+ (make-point offset (- size offset)))
+ )
+
+ ; the main function
+
+ (let* (
+ (img (car (gimp-image-new size size RGB)))
+ (background (car (gimp-layer-new img size size RGB-IMAGE _"Arrow" 100 NORMAL-MODE)))
+ (bumpmap (car (gimp-layer-new img size size RGB-IMAGE _"Bumpmap" 100 NORMAL-MODE)))
+ (big-arrow (point-list->double-array (rotate-points (make-arrow size 6) size orientation)))
+ (med-arrow (point-list->double-array (rotate-points (make-arrow size 7) size orientation)))
+ (small-arrow (point-list->double-array (rotate-points (make-arrow size 8) size orientation)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-insert-layer img background 0 -1)
+ (gimp-image-insert-layer img bumpmap 0 -1)
+
+ ; Create pattern layer
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill background BACKGROUND-FILL)
+ (gimp-context-set-pattern pattern)
+ (gimp-edit-bucket-fill background PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
+
+ ; Create bumpmap layer
+
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(127 127 127))
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 1 1 (- size 2) (- size 2))
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(255 255 255))
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 2 2 (- size 4) (- size 4))
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(127 127 127))
+ (gimp-image-select-polygon img CHANNEL-OP-REPLACE 6 big-arrow)
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-image-select-polygon img CHANNEL-OP-REPLACE 6 med-arrow)
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-selection-none img)
+
+ ; Bumpmap
+
+ (plug-in-bump-map RUN-NONINTERACTIVE img background bumpmap 135 45 2 0 0 0 0 TRUE FALSE 0)
+
+ ; Darken arrow
+
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(192 192 192))
+ (gimp-image-select-polygon img CHANNEL-OP-REPLACE 6 small-arrow)
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-selection-none img)
+
+ (gimp-layer-set-mode bumpmap MULTIPLY-MODE)
+
+ (gimp-image-flatten img)
+
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(script-fu-register "script-fu-beveled-pattern-arrow"
+ _"_Arrow..."
+ _"Create a beveled pattern arrow for webpages"
+ "Federico Mena Quintero"
+ "Federico Mena Quintero"
+ "July 1997"
+ ""
+ SF-ADJUSTMENT _"Size" '(32 5 150 1 10 0 1)
+ SF-OPTION _"Orientation" '(_"Right" _"Left" _"Up" _"Down")
+ SF-PATTERN _"Pattern" "Wood"
+)
+
+(script-fu-menu-register "script-fu-beveled-pattern-arrow"
+ "<Image>/File/Create/Web Page Themes/Beveled Pattern")
diff --git a/scripts/beveled-pattern-bullet.scm b/scripts/beveled-pattern-bullet.scm
new file mode 100644
index 0000000..c76405a
--- /dev/null
+++ b/scripts/beveled-pattern-bullet.scm
@@ -0,0 +1,96 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Beveled pattern bullet for web pages
+; Copyright (C) 1997 Federico Mena Quintero
+; federico nuclecu unam mx
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+(define (script-fu-beveled-pattern-bullet diameter pattern transparent)
+ (let* (
+ (img (car (gimp-image-new diameter diameter RGB)))
+ (background (car (gimp-layer-new img diameter diameter RGBA-IMAGE _"Bullet" 100 NORMAL-MODE)))
+ (bumpmap (car (gimp-layer-new img diameter diameter RGBA-IMAGE _"Bumpmap" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-insert-layer img background 0 -1)
+ (gimp-image-insert-layer img bumpmap 0 -1)
+
+ ; Create pattern layer
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill background BACKGROUND-FILL)
+ (gimp-context-set-pattern pattern)
+ (gimp-edit-bucket-fill background PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
+
+ ; Create bumpmap layer
+
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(127 127 127))
+ (gimp-image-select-ellipse img CHANNEL-OP-REPLACE 1 1 (- diameter 2) (- diameter 2))
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(255 255 255))
+ (gimp-image-select-ellipse img CHANNEL-OP-REPLACE 2 2 (- diameter 4) (- diameter 4))
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-selection-none img)
+
+ ; Bumpmap
+
+ (plug-in-bump-map RUN-NONINTERACTIVE img background bumpmap 135 45 2 0 0 0 0 TRUE FALSE 0)
+
+ ; Background
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-image-select-ellipse img CHANNEL-OP-REPLACE 0 0 diameter diameter)
+ (gimp-selection-invert img)
+ (gimp-edit-clear background)
+ (gimp-selection-none img)
+
+ (gimp-image-set-active-layer img background)
+ (gimp-image-remove-layer img bumpmap)
+
+ (if (= transparent FALSE)
+ (gimp-image-flatten img))
+
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(script-fu-register "script-fu-beveled-pattern-bullet"
+ _"_Bullet..."
+ _"Create a beveled pattern bullet for webpages"
+ "Federico Mena Quintero"
+ "Federico Mena Quintero"
+ "July 1997"
+ ""
+ SF-ADJUSTMENT _"Diameter" '(16 1 150 1 10 0 1)
+ SF-PATTERN _"Pattern" "Wood"
+ SF-TOGGLE _"Transparent background" FALSE
+)
+
+(script-fu-menu-register "script-fu-beveled-pattern-bullet"
+ "<Image>/File/Create/Web Page Themes/Beveled Pattern")
diff --git a/scripts/beveled-pattern-button.scm b/scripts/beveled-pattern-button.scm
new file mode 100644
index 0000000..aba9648
--- /dev/null
+++ b/scripts/beveled-pattern-button.scm
@@ -0,0 +1,135 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Beveled pattern button for web pages
+; Copyright (C) 1997 Federico Mena Quintero
+; federico nuclecu unam mx
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+; ************************************************************************
+; Changed on Feb 4, 1999 by Piet van Oostrum <piet cs uu nl>
+; For use with GIMP 1.1.
+; All calls to gimp-text-* have been converted to use the *-fontname form.
+; The corresponding parameters have been replaced by an SF-FONT parameter.
+; ************************************************************************
+
+(define (text-width extents)
+ (car extents))
+
+(define (text-height extents)
+ (cadr extents))
+
+(define (text-ascent extents)
+ (caddr extents))
+
+(define (text-descent extents)
+ (cadr (cddr extents)))
+
+(define (script-fu-beveled-pattern-button
+ text text-size font text-color pattern pressed)
+ (let* (
+ (text-extents (gimp-text-get-extents-fontname
+ text text-size PIXELS font))
+ (ascent (text-ascent text-extents))
+ (descent (text-descent text-extents))
+
+ (xpadding 8)
+ (ypadding 6)
+
+ (width (+ (* 2 xpadding)
+ (text-width text-extents)))
+ (height (+ (* 2 ypadding)
+ (+ ascent descent)))
+
+ (img (car (gimp-image-new width height RGB)))
+ (background (car (gimp-layer-new img width height RGBA-IMAGE _"Background" 100 NORMAL-MODE)))
+ (bumpmap (car (gimp-layer-new img width height RGBA-IMAGE _"Bumpmap" 100 NORMAL-MODE)))
+ (textl (car
+ (gimp-text-fontname
+ img -1 0 0 text 0 TRUE text-size PIXELS font)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-feather FALSE)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-insert-layer img background 0 1)
+ (gimp-image-insert-layer img bumpmap 0 1)
+
+ ; Create pattern layer
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill background BACKGROUND-FILL)
+ (gimp-context-set-pattern pattern)
+ (gimp-edit-bucket-fill background PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
+
+ ; Create bumpmap layer
+
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(127 127 127))
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 1 1 (- width 2) (- height 2))
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(255 255 255))
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 2 2 (- width 4) (- height 4))
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-selection-none img)
+
+ ; Bumpmap
+
+ (plug-in-bump-map RUN-NONINTERACTIVE img background bumpmap 135 45 2 0 0 0 0 TRUE pressed 0)
+
+ ; Color and position text
+
+ (gimp-context-set-background text-color)
+ (gimp-layer-set-lock-alpha textl TRUE)
+ (gimp-edit-fill textl BACKGROUND-FILL)
+
+ (gimp-layer-set-offsets textl
+ xpadding
+ (+ ypadding descent))
+
+ ; Clean up
+
+ (gimp-image-set-active-layer img background)
+ (gimp-image-remove-layer img bumpmap)
+ (gimp-image-flatten img)
+
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(script-fu-register "script-fu-beveled-pattern-button"
+ _"B_utton..."
+ _"Create a beveled pattern button for webpages"
+ "Federico Mena Quintero"
+ "Federico Mena Quintero"
+ "July 1997"
+ ""
+ SF-STRING _"Text" "Hello world!"
+ SF-ADJUSTMENT _"Font size (pixels)" '(32 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Sans"
+ SF-COLOR _"Text color" "black"
+ SF-PATTERN _"Pattern" "Wood"
+ SF-TOGGLE _"Pressed" FALSE
+)
+
+(script-fu-menu-register "script-fu-beveled-pattern-button"
+ "<Image>/File/Create/Web Page Themes/Beveled Pattern")
diff --git a/scripts/beveled-pattern-heading.scm b/scripts/beveled-pattern-heading.scm
new file mode 100644
index 0000000..83ee2cd
--- /dev/null
+++ b/scripts/beveled-pattern-heading.scm
@@ -0,0 +1,121 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Beveled pattern heading for web pages
+; Copyright (C) 1997 Federico Mena Quintero
+; federico nuclecu unam mx
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+; ************************************************************************
+; Changed on Feb 4, 1999 by Piet van Oostrum <piet cs uu nl>
+; For use with GIMP 1.1.
+; All calls to gimp-text-* have been converted to use the *-fontname form.
+; The corresponding parameters have been replaced by an SF-FONT parameter.
+; ************************************************************************
+
+
+(define (script-fu-beveled-pattern-heading
+ text text-size font pattern transparent)
+ (let* (
+ (img (car (gimp-image-new 10 10 RGB)))
+ (textl
+ (car
+ (gimp-text-fontname img -1 0 0 text 0 TRUE text-size PIXELS font)))
+
+ (width (car (gimp-drawable-width textl)))
+ (height (car (gimp-drawable-height textl)))
+
+ (background (car (gimp-layer-new img
+ width height RGBA-IMAGE
+ _"Background" 100 NORMAL-MODE)))
+ (bumpmap (car (gimp-layer-new img
+ width height RGBA-IMAGE
+ _"Bumpmap" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-resize img width height 0 0)
+ (gimp-image-insert-layer img background 0 1)
+ (gimp-image-insert-layer img bumpmap 0 1)
+
+ ; Create pattern layer
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill background BACKGROUND-FILL)
+ (gimp-context-set-pattern pattern)
+ (gimp-edit-bucket-fill background
+ PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
+
+ ; Create bumpmap layer
+
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(127 127 127))
+ (gimp-image-select-item img CHANNEL-OP-REPLACE textl)
+ (gimp-selection-shrink img 1)
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(255 255 255))
+ (gimp-image-select-item img CHANNEL-OP-REPLACE textl)
+ (gimp-selection-shrink img 2)
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-selection-none img)
+
+ ; Bumpmap
+
+ (plug-in-bump-map RUN-NONINTERACTIVE img background bumpmap 135 45 2 0 0 0 0 TRUE FALSE 0)
+
+ ; Clean up
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-image-select-item img CHANNEL-OP-REPLACE textl)
+ (gimp-selection-invert img)
+ (gimp-edit-clear background)
+ (gimp-selection-none img)
+
+ (gimp-image-set-active-layer img background)
+ (gimp-image-remove-layer img bumpmap)
+ (gimp-image-remove-layer img textl)
+
+ (if (= transparent FALSE)
+ (gimp-image-flatten img))
+
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(script-fu-register "script-fu-beveled-pattern-heading"
+ _"H_eading..."
+ _"Create a beveled pattern heading for webpages"
+ "Federico Mena Quintero"
+ "Federico Mena Quintero"
+ "July 1997"
+ ""
+ SF-STRING _"Text" "Hello world!"
+ SF-ADJUSTMENT _"Font size (pixels)" '(72 2 200 1 1 0 1)
+ SF-FONT _"Font" "Sans"
+ SF-PATTERN _"Pattern" "Wood"
+ SF-TOGGLE _"Transparent background" FALSE
+)
+
+(script-fu-menu-register "script-fu-beveled-pattern-heading"
+ "<Image>/File/Create/Web Page Themes/Beveled Pattern")
diff --git a/scripts/beveled-pattern-hrule.scm b/scripts/beveled-pattern-hrule.scm
new file mode 100644
index 0000000..0ec7f5c
--- /dev/null
+++ b/scripts/beveled-pattern-hrule.scm
@@ -0,0 +1,89 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Beveled pattern hrule for web pages
+; Copyright (C) 1997 Federico Mena Quintero
+; federico nuclecu unam mx
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+(define (script-fu-beveled-pattern-hrule width height pattern)
+ (let* (
+ (img (car (gimp-image-new width height RGB)))
+ (background (car (gimp-layer-new img
+ width height RGB-IMAGE
+ _"Rule" 100 NORMAL-MODE)))
+ (bumpmap (car (gimp-layer-new img
+ width height RGBA-IMAGE
+ _"Bumpmap" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-feather FALSE)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-insert-layer img background 0 -1)
+ (gimp-image-insert-layer img bumpmap 0 -1)
+
+ ; Create pattern layer
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill background BACKGROUND-FILL)
+ (gimp-context-set-pattern pattern)
+ (gimp-edit-bucket-fill background PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
+
+ ; Create bumpmap layer
+
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(127 127 127))
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 1 1 (- width 2) (- height 2))
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-context-set-background '(255 255 255))
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 2 2 (- width 4) (- height 4))
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-selection-none img)
+
+ ; Bumpmap
+
+ (plug-in-bump-map RUN-NONINTERACTIVE img background bumpmap 135 45 2 0 0 0 0 TRUE FALSE 0)
+
+ (gimp-image-set-active-layer img background)
+ (gimp-image-remove-layer img bumpmap)
+
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(script-fu-register "script-fu-beveled-pattern-hrule"
+ _"_Hrule..."
+ _"Create a beveled pattern hrule for webpages"
+ "Federico Mena Quintero"
+ "Federico Mena Quintero"
+ "July 1997"
+ ""
+ SF-ADJUSTMENT _"Width" '(480 5 1500 1 10 0 1)
+ SF-ADJUSTMENT _"Height" '(16 1 100 1 10 0 1)
+ SF-PATTERN _"Pattern" "Wood"
+)
+
+(script-fu-menu-register "script-fu-beveled-pattern-hrule"
+ "<Image>/File/Create/Web Page Themes/Beveled Pattern")
diff --git a/scripts/blended-logo.scm b/scripts/blended-logo.scm
new file mode 100644
index 0000000..bcd4a35
--- /dev/null
+++ b/scripts/blended-logo.scm
@@ -0,0 +1,206 @@
+; BLENDED-DROP-SHADOW-LOGO
+; draw the specified text over a blended background using current gimp fg
+; and bg colors. The finished blend has a drop shadow underneath that blends
+; to the specified bg-color
+; if the blend colors are specified as high intensity, the sharp option
+; should be enabled or the logo will come out blurry
+
+(define (blended-logo-scale size percent)
+ (* size percent)
+)
+
+(define (apply-blended-logo-effect img
+ logo-layer
+ b-size
+ bg-color
+ blend-mode
+ blend-fg
+ blend-bg
+ blend-gradient
+ blend-gradient-reverse)
+ (let* (
+ (b-size-2 (blended-logo-scale b-size 0.5))
+ (f-size (blended-logo-scale b-size 0.75))
+ (ds-size (blended-logo-scale b-size 0.5))
+ (ts-size (- b-size-2 3))
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (blend-layer (car (gimp-layer-new img
+ width height RGBA-IMAGE
+ "Blend" 100 NORMAL-MODE)))
+ (shadow-layer (car (gimp-layer-new img
+ width height RGBA-IMAGE
+ "Shadow" 100 NORMAL-MODE)))
+ (text-shadow-layer (car (gimp-layer-new img
+ width height RGBA-IMAGE
+ "Text Shadow" 100 MULTIPLY-MODE)))
+ (tsl-layer-mask (car (gimp-layer-create-mask text-shadow-layer
+ ADD-BLACK-MASK)))
+ (drop-shadow-layer (car (gimp-layer-new img
+ width height RGBA-IMAGE
+ "Drop Shadow" 100 MULTIPLY-MODE)))
+ (dsl-layer-mask (car (gimp-layer-create-mask drop-shadow-layer
+ ADD-BLACK-MASK)))
+ )
+
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img text-shadow-layer drop-shadow-layer blend-layer shadow-layer)
+ (gimp-image-raise-item img text-shadow-layer)
+ (gimp-selection-none img)
+ (gimp-edit-clear text-shadow-layer)
+ (gimp-edit-clear drop-shadow-layer)
+ (gimp-edit-clear blend-layer)
+ (gimp-context-set-background bg-color)
+ (gimp-drawable-fill shadow-layer BACKGROUND-FILL)
+ (gimp-context-set-feather TRUE)
+ (gimp-context-set-feather-radius b-size-2 b-size-2)
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE b-size-2 b-size-2 (- width b-size) (- height b-size))
+ (gimp-context-set-feather FALSE)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill shadow-layer BACKGROUND-FILL)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-layer-add-mask text-shadow-layer tsl-layer-mask)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill tsl-layer-mask BACKGROUND-FILL)
+ (gimp-selection-feather img f-size)
+ (gimp-context-set-background '(63 63 63))
+ (gimp-edit-fill drop-shadow-layer BACKGROUND-FILL)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill text-shadow-layer BACKGROUND-FILL)
+ (gimp-context-set-foreground '(255 255 255))
+
+ (gimp-edit-blend text-shadow-layer FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-SHAPEBURST-ANGULAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ 0 0 1 1)
+
+ (gimp-selection-none img)
+ (gimp-context-set-foreground blend-fg)
+ (gimp-context-set-background blend-bg)
+ (gimp-context-set-gradient blend-gradient)
+
+ (gimp-edit-blend blend-layer blend-mode NORMAL-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE blend-gradient-reverse
+ FALSE 0 0 TRUE
+ 0 0 width 0)
+
+ (gimp-layer-translate logo-layer (- b-size-2) (- b-size-2))
+ (gimp-layer-translate blend-layer (- b-size) (- b-size))
+ (gimp-layer-translate text-shadow-layer (- ts-size) (- ts-size))
+ (gimp-layer-translate drop-shadow-layer ds-size ds-size)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE blend-layer)
+ (gimp-layer-add-mask drop-shadow-layer dsl-layer-mask)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill dsl-layer-mask BACKGROUND-FILL)
+ (gimp-layer-remove-mask drop-shadow-layer MASK-APPLY)
+ (gimp-selection-none img)
+ )
+)
+
+(define (script-fu-blended-logo-alpha img
+ logo-layer
+ b-size
+ bg-color
+ blend-mode
+ blend-fg
+ blend-bg
+ blend-gradient
+ blend-gradient-reverse)
+ (begin
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-undo-group-start img)
+ (apply-blended-logo-effect img logo-layer b-size bg-color
+ blend-mode blend-fg blend-bg
+ blend-gradient blend-gradient-reverse)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(script-fu-register "script-fu-blended-logo-alpha"
+ _"Blen_ded..."
+ _"Add blended backgrounds, highlights, and shadows to the selected region (or alpha)"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1996"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT _"Offset (pixels)" '(15 1 100 1 10 0 1)
+ SF-COLOR _"Background color" "white"
+ SF-OPTION _"Blend mode" '(_"FG-BG-RGB"
+ _"FG-BG-HSV"
+ _"FG-Transparent"
+ _"Custom Gradient")
+ SF-COLOR _"Start blend" '(22 9 129)
+ SF-COLOR _"End blend" '(129 9 82)
+ SF-GRADIENT _"Gradient" "Golden"
+ SF-TOGGLE _"Gradient reverse" FALSE
+)
+
+(script-fu-menu-register "script-fu-blended-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-blended-logo text
+ size
+ font
+ text-color
+ bg-color
+ blend-mode
+ blend-fg
+ blend-bg
+ blend-gradient
+ blend-gradient-reverse)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (b-size (blended-logo-scale size 0.1))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text b-size TRUE size PIXELS font)))
+ )
+ (gimp-context-push)
+ (gimp-context-set-antialias TRUE)
+ (gimp-context-set-feather FALSE)
+
+ (gimp-image-undo-disable img)
+ (gimp-context-set-foreground text-color)
+ (gimp-layer-set-lock-alpha text-layer TRUE)
+ (gimp-edit-fill text-layer FOREGROUND-FILL)
+ (apply-blended-logo-effect img text-layer b-size bg-color
+ blend-mode blend-fg blend-bg
+ blend-gradient blend-gradient-reverse)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-blended-logo"
+ _"Blen_ded..."
+ _"Create a logo with blended backgrounds, highlights, and shadows"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1996"
+ ""
+ SF-STRING _"Text" "GIMP"
+ SF-ADJUSTMENT _"Font size (pixels)" '(150 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Crillee"
+ SF-COLOR _"Text color" '(124 174 255)
+ SF-COLOR _"Background color" "white"
+ SF-OPTION _"Blend mode" '(_"FG-BG-RGB"
+ _"FG-BG-HSV"
+ _"FG-Transparent"
+ _"Custom Gradient")
+ SF-COLOR _"Start blend" '(22 9 129)
+ SF-COLOR _"End blend" '(129 9 82)
+ SF-GRADIENT _"Gradient" "Golden"
+ SF-TOGGLE _"Gradient reverse" FALSE
+)
+
+(script-fu-menu-register "script-fu-blended-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/bovinated-logo.scm b/scripts/bovinated-logo.scm
new file mode 100644
index 0000000..3738e99
--- /dev/null
+++ b/scripts/bovinated-logo.scm
@@ -0,0 +1,140 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+;
+; Bovinated Logos v0.1 04/08/98
+; by Brian McFee <keebler wco com>
+; Creates Cow-spotted logs.. what else?
+
+(define (apply-bovinated-logo-effect img
+ logo-layer
+ spots-x
+ spots-y
+ bg-color)
+ (let* (
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (bg-layer (car (gimp-layer-new img
+ width height RGBA-IMAGE
+ "Background" 100 NORMAL-MODE)))
+ (blur-layer (car (gimp-layer-new img
+ width height RGBA-IMAGE
+ "Blur" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img blur-layer bg-layer)
+
+ (gimp-selection-all img)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-selection-none img)
+
+ (gimp-layer-set-lock-alpha blur-layer TRUE)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-selection-all img)
+ (gimp-edit-fill blur-layer BACKGROUND-FILL)
+ (gimp-edit-clear blur-layer)
+ (gimp-context-set-background '(191 191 191))
+ (gimp-selection-none img)
+ (gimp-layer-set-lock-alpha blur-layer FALSE)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-edit-fill blur-layer BACKGROUND-FILL)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img blur-layer 5.0 1 1)
+ (gimp-selection-none img)
+ (gimp-layer-set-lock-alpha logo-layer TRUE)
+ (gimp-selection-all img)
+ (plug-in-solid-noise RUN-NONINTERACTIVE img logo-layer 0 0 23 1 spots-x spots-y)
+ (gimp-brightness-contrast logo-layer 0 127)
+ (gimp-selection-none img)
+ (gimp-layer-set-lock-alpha logo-layer FALSE)
+ (plug-in-bump-map RUN-NONINTERACTIVE img logo-layer blur-layer
+ 135 50 10 0 0 0 30 TRUE FALSE 0)
+ (gimp-layer-set-offsets blur-layer 5 5)
+ (gimp-invert blur-layer)
+ (gimp-layer-set-opacity blur-layer 50.0)
+ (gimp-image-set-active-layer img logo-layer)
+
+ (gimp-context-pop)
+ )
+)
+
+(define (script-fu-bovinated-logo-alpha img
+ logo-layer
+ spots-x
+ spots-y
+ bg-color)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-bovinated-logo-effect img logo-layer spots-x spots-y bg-color)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-bovinated-logo-alpha"
+ _"Bo_vination..."
+ _"Add 'cow spots' to the selected region (or alpha)"
+ "Brian McFee <keebler wco com>"
+ "Brian McFee"
+ "April 1998"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT _"Spots density X" '(16 1 16 1 10 0 1)
+ SF-ADJUSTMENT _"Spots density Y" '(4 1 16 1 10 0 1)
+ SF-COLOR _"Background Color" "white"
+)
+
+(script-fu-menu-register "script-fu-bovinated-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-bovinated-logo text
+ size
+ font
+ spots-x
+ spots-y
+ bg-color)
+ (let* ((img (car (gimp-image-new 256 256 RGB)))
+ (border (/ size 4))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text border TRUE size PIXELS font))))
+ (gimp-image-undo-disable img)
+ (apply-bovinated-logo-effect img text-layer spots-x spots-y bg-color)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-bovinated-logo"
+ _"Bo_vination..."
+ _"Create a logo with text in the style of 'cow spots'"
+ "Brian McFee <keebler wco com>"
+ "Brian McFee"
+ "April 1998"
+ ""
+ SF-STRING _"Text" "Fear the Cow"
+ SF-ADJUSTMENT _"Font size (pixels)" '(80 2 1000 1 10 0 1)
+ SF-FONT _"Font" "RoostHeavy"
+ SF-ADJUSTMENT _"Spots density X" '(16 1 16 1 10 0 1)
+ SF-ADJUSTMENT _"Spots density Y" '(4 1 16 1 10 0 1)
+ SF-COLOR _"Background color" "white"
+)
+
+(script-fu-menu-register "script-fu-bovinated-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/camo.scm b/scripts/camo.scm
new file mode 100644
index 0000000..b90eb4e
--- /dev/null
+++ b/scripts/camo.scm
@@ -0,0 +1,111 @@
+;
+;
+;
+; Chris Gutteridge (cjg ecs soton ac uk)
+; At ECS Dept, University of Southampton, England.
+
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+(define (script-fu-camo-pattern inSize inGrain inColor1 inColor2 inColor3 inSmooth inFlatten)
+
+ (let* (
+ (theWidth inSize)
+ (theHeight inSize)
+ (theImage (car (gimp-image-new theWidth theHeight RGB)))
+ (baseLayer (car (gimp-layer-new theImage theWidth theHeight RGBA-IMAGE "Background" 100
NORMAL-MODE)))
+ (thickLayer 0)
+ (thinLayer 0)
+ (theBlur 0)
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-insert-layer theImage baseLayer 0 0)
+
+ (set! thickLayer (car (gimp-layer-new theImage theWidth theHeight RGBA-IMAGE "Camo Thick Layer" 100
NORMAL-MODE)))
+ (gimp-image-insert-layer theImage thickLayer 0 0)
+
+ (set! thinLayer (car (gimp-layer-new theImage theWidth theHeight RGBA-IMAGE "Camo Thin Layer" 100
NORMAL-MODE)))
+ (gimp-image-insert-layer theImage thinLayer 0 0)
+
+ (gimp-selection-all theImage)
+ (gimp-context-set-background inColor1)
+ (gimp-drawable-fill baseLayer BACKGROUND-FILL)
+
+ (plug-in-solid-noise RUN-NONINTERACTIVE
+ theImage thickLayer 1 0 (rand 65536) 1 inGrain inGrain)
+ (plug-in-solid-noise RUN-NONINTERACTIVE
+ theImage thinLayer 1 0 (rand 65536) 1 inGrain inGrain)
+ (gimp-threshold thickLayer 127 255)
+ (gimp-threshold thinLayer 145 255)
+
+ (set! theBlur (- 16 inGrain))
+
+ (gimp-context-set-background inColor2)
+ (gimp-image-select-color theImage CHANNEL-OP-REPLACE thickLayer '(0 0 0))
+ (gimp-edit-clear thickLayer)
+ (gimp-selection-invert theImage)
+ (gimp-edit-fill thickLayer BACKGROUND-FILL)
+ (gimp-selection-none theImage)
+ (if (= inSmooth TRUE)
+ (script-fu-tile-blur theImage thickLayer theBlur TRUE TRUE FALSE)
+ )
+
+
+ (gimp-context-set-background inColor3)
+ (gimp-image-select-color theImage CHANNEL-OP-REPLACE thinLayer '(0 0 0))
+ (gimp-edit-clear thinLayer)
+ (gimp-selection-invert theImage)
+ (gimp-edit-fill thinLayer BACKGROUND-FILL)
+ (gimp-selection-none theImage)
+ (if (= inSmooth TRUE)
+ (script-fu-tile-blur theImage thinLayer (/ theBlur 2) TRUE TRUE FALSE)
+ )
+
+
+ (if (= inFlatten TRUE)
+ (gimp-image-flatten theImage)
+ )
+
+ (gimp-display-new theImage)
+
+ (gimp-context-pop)
+ )
+)
+
+
+; Register the function with GIMP:
+
+(script-fu-register
+ "script-fu-camo-pattern"
+ _"_Camouflage..."
+ _"Create an image filled with a camouflage pattern"
+ "Chris Gutteridge: cjg ecs soton ac uk"
+ "28th April 1998"
+ "Chris Gutteridge / ECS @ University of Southampton, England"
+ ""
+ SF-ADJUSTMENT _"Image size" '(256 10 1000 1 10 0 1)
+ SF-ADJUSTMENT _"Granularity" '(7 0 15 1 1 0 0)
+ SF-COLOR _"Color 1" '(33 100 58)
+ SF-COLOR _"Color 2" '(170 170 60)
+ SF-COLOR _"Color 3" '(150 115 100)
+ SF-TOGGLE _"Smooth" FALSE
+ SF-TOGGLE _"Flatten image" TRUE
+)
+
+
+(script-fu-menu-register "script-fu-camo-pattern"
+ "<Image>/File/Create/Patterns")
diff --git a/scripts/carved-logo.scm b/scripts/carved-logo.scm
new file mode 100644
index 0000000..20625a5
--- /dev/null
+++ b/scripts/carved-logo.scm
@@ -0,0 +1,179 @@
+; CARVE-TEXT
+; Carving, embossing, & stamping
+; Process taken from "The Photoshop 3 WOW! Book"
+; http://www.peachpit.com
+
+
+(define (carve-brush brush-size)
+ (cond ((<= brush-size 5) "Circle (05)")
+ ((<= brush-size 7) "Circle (07)")
+ ((<= brush-size 9) "Circle (09)")
+ ((<= brush-size 11) "Circle (11)")
+ ((<= brush-size 13) "Circle (13)")
+ ((<= brush-size 15) "Circle (15)")
+ ((<= brush-size 17) "Circle (17)")
+ ((> brush-size 17) "Circle (19)")))
+
+(define (carve-scale val scale)
+ (* (sqrt val) scale))
+
+(define (calculate-inset-gamma img layer)
+ (let* ((stats (gimp-histogram layer 0 0 255))
+ (mean (car stats)))
+ (cond ((< mean 127) (+ 1.0 (* 0.5 (/ (- 127 mean) 127.0))))
+ ((>= mean 127) (- 1.0 (* 0.5 (/ (- mean 127) 127.0)))))))
+
+(define (script-fu-carved-logo text size font bg-img carve-raised padding)
+ (let* (
+ (img (car (gimp-file-load 1 bg-img bg-img)))
+ (offx (carve-scale size 0.33))
+ (offy (carve-scale size 0.25))
+ (feather (carve-scale size 0.3))
+ (brush-size (carve-scale size 0.3))
+ (b-size (+ (carve-scale size 0.5) padding))
+ (layer1 (car (gimp-image-get-active-drawable img)))
+ (mask-layer (car (gimp-text-fontname img -1 0 0 text b-size TRUE size PIXELS font)))
+ (width (car (gimp-drawable-width mask-layer)))
+ (height (car (gimp-drawable-height mask-layer)))
+ (mask-fs 0)
+ (mask (car (gimp-channel-new img width height "Engraving Mask" 50 '(0 0 0))))
+ (inset-gamma (calculate-inset-gamma img layer1))
+ (mask-fat 0)
+ (mask-emboss 0)
+ (mask-highlight 0)
+ (mask-shadow 0)
+ (shadow-layer 0)
+ (highlight-layer 0)
+ (cast-shadow-layer 0)
+ (csl-mask 0)
+ (inset-layer 0)
+ (il-mask 0)
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-undo-disable img)
+
+ (gimp-image-set-filename img "")
+
+ (gimp-image-insert-channel img mask -1 0)
+
+ (gimp-layer-set-lock-alpha mask-layer TRUE)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill mask-layer BACKGROUND-FILL)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill mask BACKGROUND-FILL)
+
+ (plug-in-tile RUN-NONINTERACTIVE img layer1 width height FALSE)
+
+ (gimp-edit-copy mask-layer)
+ (set! mask-fs (car (gimp-edit-paste mask FALSE)))
+ (gimp-floating-sel-anchor mask-fs)
+ (if (= carve-raised TRUE)
+ (gimp-invert mask)
+ )
+
+ (gimp-image-remove-layer img mask-layer)
+
+ (set! mask-fat (car (gimp-channel-copy mask)))
+ (gimp-image-insert-channel img mask-fat -1 0)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE mask-fat)
+ (gimp-context-set-brush (carve-brush brush-size))
+ (gimp-context-set-foreground '(255 255 255))
+ (gimp-edit-stroke mask-fat)
+ (gimp-selection-none img)
+
+ (set! mask-emboss (car (gimp-channel-copy mask-fat)))
+ (gimp-image-insert-channel img mask-emboss -1 0)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img mask-emboss feather TRUE TRUE)
+ (plug-in-emboss RUN-NONINTERACTIVE img mask-emboss 315.0 45.0 7 TRUE)
+
+ (gimp-context-set-background '(180 180 180))
+ (gimp-image-select-item img CHANNEL-OP-REPLACE mask-fat)
+ (gimp-selection-invert img)
+ (gimp-edit-fill mask-emboss BACKGROUND-FILL)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE mask)
+ (gimp-edit-fill mask-emboss BACKGROUND-FILL)
+ (gimp-selection-none img)
+
+ (set! mask-highlight (car (gimp-channel-copy mask-emboss)))
+ (gimp-image-insert-channel img mask-highlight -1 0)
+ (gimp-levels mask-highlight 0 180 255 1.0 0 255)
+
+ (set! mask-shadow mask-emboss)
+ (gimp-levels mask-shadow 0 0 180 1.0 0 255)
+
+ (gimp-edit-copy mask-shadow)
+ (set! shadow-layer (car (gimp-edit-paste layer1 FALSE)))
+ (gimp-floating-sel-to-layer shadow-layer)
+ (gimp-layer-set-mode shadow-layer MULTIPLY-MODE)
+
+ (gimp-edit-copy mask-highlight)
+ (set! highlight-layer (car (gimp-edit-paste shadow-layer FALSE)))
+ (gimp-floating-sel-to-layer highlight-layer)
+ (gimp-layer-set-mode highlight-layer SCREEN-MODE)
+
+ (gimp-edit-copy mask)
+ (set! cast-shadow-layer (car (gimp-edit-paste highlight-layer FALSE)))
+ (gimp-floating-sel-to-layer cast-shadow-layer)
+ (gimp-layer-set-mode cast-shadow-layer MULTIPLY-MODE)
+ (gimp-layer-set-opacity cast-shadow-layer 75)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img cast-shadow-layer feather TRUE TRUE)
+ (gimp-layer-translate cast-shadow-layer offx offy)
+
+ (set! csl-mask (car (gimp-layer-create-mask cast-shadow-layer ADD-BLACK-MASK)))
+ (gimp-layer-add-mask cast-shadow-layer csl-mask)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE mask)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill csl-mask BACKGROUND-FILL)
+
+ (set! inset-layer (car (gimp-layer-copy layer1 TRUE)))
+ (gimp-image-insert-layer img inset-layer 0 1)
+
+ (set! il-mask (car (gimp-layer-create-mask inset-layer ADD-BLACK-MASK)))
+ (gimp-layer-add-mask inset-layer il-mask)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE mask)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill il-mask BACKGROUND-FILL)
+ (gimp-selection-none img)
+
+ (gimp-levels inset-layer 0 0 255 inset-gamma 0 255)
+
+ (gimp-image-remove-channel img mask)
+ (gimp-image-remove-channel img mask-fat)
+ (gimp-image-remove-channel img mask-highlight)
+ (gimp-image-remove-channel img mask-shadow)
+
+ (gimp-item-set-name layer1 _"Carved Surface")
+ (gimp-item-set-name shadow-layer _"Bevel Shadow")
+ (gimp-item-set-name highlight-layer _"Bevel Highlight")
+ (gimp-item-set-name cast-shadow-layer _"Cast Shadow")
+ (gimp-item-set-name inset-layer _"Inset")
+
+ (gimp-display-new img)
+ (gimp-image-undo-enable img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-carved-logo"
+ _"Carved..."
+ _"Create a logo with text raised above or carved in to the specified background image"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1997"
+ ""
+ SF-STRING _"Text" "Marble"
+ SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Engraver"
+ SF-FILENAME _"Background Image"
+ (string-append gimp-data-directory
+ "/scripts/images/texture3.jpg")
+ SF-TOGGLE _"Carve raised text" FALSE
+ SF-ADJUSTMENT _"Padding around text" '(10 0 1000 1 10 0 1)
+)
+
+(script-fu-menu-register "script-fu-carved-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/chalk.scm b/scripts/chalk.scm
new file mode 100644
index 0000000..4f613a7
--- /dev/null
+++ b/scripts/chalk.scm
@@ -0,0 +1,136 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+;
+; chalk.scm version 0.11 10/10/97
+;
+; Copyright (C) 1997 Manish Singh <msingh uclink4 berkeley edu>
+;
+; Makes a logo with a chalk-like text effect.
+
+(define (apply-chalk-logo-effect img
+ logo-layer
+ bg-color)
+ (let* (
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (bg-layer (car (gimp-layer-new img
+ width height RGB-IMAGE
+ "Background" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-feather FALSE)
+
+ (gimp-selection-none img)
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img bg-layer)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+
+ ; the actual effect
+ (gimp-layer-set-lock-alpha logo-layer FALSE)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img logo-layer 2.0 1 1)
+ (plug-in-spread RUN-NONINTERACTIVE img logo-layer 5.0 5.0)
+ (plug-in-ripple RUN-NONINTERACTIVE img logo-layer 27 2 0 0 0 TRUE TRUE)
+ (plug-in-ripple RUN-NONINTERACTIVE img logo-layer 27 2 1 0 0 TRUE TRUE)
+
+ ; sobel doesn't work on a layer with transparency, so merge layers:
+ (let ((logo-layer
+ (car (gimp-image-merge-down img logo-layer EXPAND-AS-NECESSARY))))
+ (plug-in-sobel RUN-NONINTERACTIVE img logo-layer TRUE TRUE TRUE)
+ (gimp-levels logo-layer 0 0 120 3.5 0 255)
+
+ ; work-around for sobel edge detect screw-up (why does this happen?)
+ ; the top line of the image has some garbage instead of the bgcolor
+ (gimp-image-select-rectangle img CHANNEL-OP-ADD 0 0 width 1)
+ (gimp-edit-clear logo-layer)
+ )
+
+ (gimp-selection-none img)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(define (script-fu-chalk-logo-alpha img
+ logo-layer
+ bg-color)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-chalk-logo-effect img logo-layer bg-color)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-chalk-logo-alpha"
+ _"_Chalk..."
+ _"Create a chalk drawing effect for the selected region (or alpha)"
+ "Manish Singh <msingh uclink4 berkeley edu>"
+ "Manish Singh"
+ "October 1997"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-COLOR _"Background color" "black"
+)
+
+(script-fu-menu-register "script-fu-chalk-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-chalk-logo text
+ size
+ font
+ bg-color
+ chalk-color)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (border (/ size 4))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text border TRUE size PIXELS font)))
+ )
+
+ (gimp-context-push)
+
+ (gimp-image-undo-disable img)
+ (gimp-context-set-foreground chalk-color)
+ (gimp-layer-set-lock-alpha text-layer TRUE)
+ (gimp-edit-fill text-layer FOREGROUND-FILL)
+ (apply-chalk-logo-effect img text-layer bg-color)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-chalk-logo"
+ _"_Chalk..."
+ _"Create a logo resembling chalk scribbled on a blackboard"
+ "Manish Singh <msingh uclink4 berkeley edu>"
+ "Manish Singh"
+ "October 1997"
+ ""
+ SF-STRING _"Text" "CHALK"
+ SF-ADJUSTMENT _"Font size (pixels)" '(150 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Sans"
+ SF-COLOR _"Background color" "black"
+ SF-COLOR _"Chalk color" "white"
+)
+
+(script-fu-menu-register "script-fu-chalk-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/chip-away.scm b/scripts/chip-away.scm
new file mode 100644
index 0000000..7bd0ade
--- /dev/null
+++ b/scripts/chip-away.scm
@@ -0,0 +1,206 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Supposed to look vaguely like roughly carved wood. Chipped away if you will.
+;
+; Options: Text String - the string to make the logo from
+; Font - which font to use
+; Font Size - how big
+; Chip Amount - how rought he chipping is (how spread the bump map is)
+; Blur Amount - the bump layer is blurred slighty by this amount
+; Invert - whether or not to invert the bumpmap (gives a carved in feel)
+; Drop Shadow - whether or not to draw a drop shadow
+; Keep bump layer? - whether to keep the layer used as the bump map
+; fill bg with pattern? - whether to fill the background with the pattern or leave it white
+; Keep Background - whether or not to remove the background layer
+;
+; Adrian Likins (Adrian gimp org)
+; Jan 11, 1998 v1
+;
+; see http://www.gimp.org/~adrian/script.html
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+;
+; Some suggested patterns: Dried mud, 3D green, Slate
+;
+
+(define (apply-chip-away-logo-effect img
+ logo-layer
+ spread-amount
+ blur-amount
+ invert
+ drop-shadow
+ keep-bump
+ bg-fill
+ keep-back
+ pattern)
+ (let* (
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
+ (bump-layer (car (gimp-layer-new img width height RGBA-IMAGE "Bump Layer" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img bump-layer bg-layer)
+ (gimp-layer-set-lock-alpha logo-layer TRUE)
+ (gimp-context-set-pattern pattern)
+
+ (gimp-context-set-background '(255 255 255))
+ (gimp-selection-all img)
+
+ (if (= bg-fill TRUE)
+ (gimp-edit-bucket-fill bg-layer
+ PATTERN-BUCKET-FILL NORMAL-MODE
+ 100 255 FALSE 1 1)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ )
+
+ (gimp-selection-all img)
+ (gimp-edit-clear bump-layer)
+ (gimp-selection-none img)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-edit-fill bump-layer BACKGROUND-FILL)
+ (gimp-edit-bucket-fill logo-layer
+ PATTERN-BUCKET-FILL NORMAL-MODE 100 255 FALSE 1 1)
+ (gimp-selection-none img)
+
+ (gimp-layer-set-lock-alpha bump-layer FALSE)
+ (plug-in-spread RUN-NONINTERACTIVE img bump-layer spread-amount spread-amount)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE bump-layer)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img bump-layer blur-amount TRUE TRUE)
+
+ (gimp-selection-none img)
+
+ (plug-in-bump-map RUN-NONINTERACTIVE img logo-layer bump-layer
+ 135.00 25.0 60 0 0 0 0 TRUE invert 1)
+
+ (gimp-item-set-visible bump-layer FALSE)
+
+ (if (= drop-shadow TRUE)
+ (begin
+ (let* ((shadow-layer (car (gimp-layer-new img width height RGBA-IMAGE "Shadow layer" 100
NORMAL-MODE))))
+ (gimp-image-set-active-layer img logo-layer)
+ (script-fu-util-image-add-layers img shadow-layer)
+ (gimp-selection-all img)
+ (gimp-edit-clear shadow-layer)
+ (gimp-selection-none img)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill shadow-layer BACKGROUND-FILL)
+ (gimp-selection-none img)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img shadow-layer 5 TRUE TRUE)
+ (gimp-layer-translate shadow-layer 6 6))))
+
+ (if (= keep-bump FALSE)
+ (gimp-image-remove-layer img bump-layer))
+
+ (if (= keep-back FALSE)
+ (gimp-image-remove-layer img bg-layer))
+
+ (gimp-context-pop)
+ )
+)
+
+(define (script-fu-chip-away-logo-alpha img
+ logo-layer
+ spread-amount
+ blur-amount
+ invert
+ drop-shadow
+ keep-bump
+ bg-fill
+ keep-back
+ pattern)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-chip-away-logo-effect img logo-layer spread-amount blur-amount
+ invert drop-shadow keep-bump bg-fill
+ keep-back pattern)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-chip-away-logo-alpha"
+ _"Chip Awa_y..."
+ _"Add a chipped woodcarving effect to the selected region (or alpha)"
+ "Adrian Likins <adrian gimp org>"
+ "Adrian Likins <adrian gimp org>"
+ "1997"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT _"Chip amount" '(30 0 200 1 10 0 1)
+ SF-ADJUSTMENT _"Blur amount" '(3 1 100 1 10 1 0)
+ SF-TOGGLE _"Invert" FALSE
+ SF-TOGGLE _"Drop shadow" TRUE
+ SF-TOGGLE _"Keep bump layer" FALSE
+ SF-TOGGLE _"Fill BG with pattern" TRUE
+ SF-TOGGLE _"Keep background" TRUE
+ SF-PATTERN _"Pattern" "Burlwood"
+)
+
+(script-fu-menu-register "script-fu-chip-away-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-chip-away-logo text
+ font
+ font-size
+ spread-amount
+ blur-amount
+ invert
+ drop-shadow
+ keep-bump
+ bg-fill
+ keep-back
+ pattern)
+ (let* ((img (car (gimp-image-new 256 256 RGB)))
+ (text-layer (car (gimp-text-fontname img -1 0 0
+ text 30 TRUE font-size PIXELS font))))
+ (gimp-image-undo-disable img)
+ (apply-chip-away-logo-effect img text-layer spread-amount blur-amount
+ invert drop-shadow keep-bump bg-fill
+ keep-back pattern)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-chip-away-logo"
+ _"Chip Awa_y..."
+ _"Create a logo resembling a chipped wood carving"
+ "Adrian Likins <adrian gimp org>"
+ "Adrian Likins <adrian gimp org>"
+ "1997"
+ ""
+ SF-STRING _"Text" "Sloth"
+ SF-FONT _"Font" "RoostHeavy"
+ SF-ADJUSTMENT _"Font size (pixels)" '(200 2 1000 1 10 0 1)
+ SF-ADJUSTMENT _"Chip amount" '(30 0 200 1 10 0 1)
+ SF-ADJUSTMENT _"Blur amount" '(3 1 100 1 10 1 0)
+ SF-TOGGLE _"Invert" FALSE
+ SF-TOGGLE _"Drop shadow" TRUE
+ SF-TOGGLE _"Keep bump layer" FALSE
+ SF-TOGGLE _"Fill BG with pattern" TRUE
+ SF-TOGGLE _"Keep background" TRUE
+ SF-PATTERN _"Pattern" "Burlwood"
+)
+
+(script-fu-menu-register "script-fu-chip-away-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/chrome-logo.scm b/scripts/chrome-logo.scm
new file mode 100644
index 0000000..f5682f0
--- /dev/null
+++ b/scripts/chrome-logo.scm
@@ -0,0 +1,133 @@
+; CHROME-LOGOS
+
+(define (apply-chrome-logo-effect img
+ logo-layer
+ offsets
+ bg-color)
+ (let* (
+ (offx1 (* offsets 0.4))
+ (offy1 (* offsets 0.3))
+ (offx2 (* offsets (- 0.4)))
+ (offy2 (* offsets (- 0.3)))
+ (feather (* offsets 0.5))
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (layer1 (car (gimp-layer-new img width height RGBA-IMAGE "Layer 1" 100 DIFFERENCE-MODE)))
+ (layer2 (car (gimp-layer-new img width height RGBA-IMAGE "Layer 2" 100 DIFFERENCE-MODE)))
+ (layer3 (car (gimp-layer-new img width height RGBA-IMAGE "Layer 3" 100 NORMAL-MODE)))
+ (shadow (car (gimp-layer-new img width height RGBA-IMAGE "Drop Shadow" 100 NORMAL-MODE)))
+ (background (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
+ (layer-mask (car (gimp-layer-create-mask layer1 ADD-BLACK-MASK)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img layer1 layer2 layer3 shadow background)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-selection-none img)
+ (gimp-edit-fill layer1 BACKGROUND-FILL)
+ (gimp-edit-fill layer2 BACKGROUND-FILL)
+ (gimp-edit-fill layer3 BACKGROUND-FILL)
+ (gimp-edit-clear shadow)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-item-set-visible logo-layer FALSE)
+ (gimp-item-set-visible shadow FALSE)
+ (gimp-item-set-visible background FALSE)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill layer1 BACKGROUND-FILL)
+ (gimp-selection-translate img offx1 offy1)
+ (gimp-selection-feather img feather)
+ (gimp-edit-fill layer2 BACKGROUND-FILL)
+ (gimp-selection-translate img (* 2 offx2) (* 2 offy2))
+ (gimp-edit-fill layer3 BACKGROUND-FILL)
+ (gimp-selection-none img)
+ (set! layer1 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
+ ; if the original image contained more than one visible layer:
+ (while (> (car (gimp-image-get-item-position img layer1))
+ (car (gimp-image-get-item-position img shadow)))
+ (gimp-image-raise-item img layer1)
+ )
+ (gimp-invert layer1)
+ (gimp-layer-add-mask layer1 layer-mask)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-selection-feather img feather)
+ (gimp-edit-fill layer-mask BACKGROUND-FILL)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-selection-translate img offx1 offy1)
+ (gimp-edit-fill shadow BACKGROUND-FILL)
+ (gimp-selection-none img)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill background BACKGROUND-FILL)
+ (gimp-item-set-visible shadow TRUE)
+ (gimp-item-set-visible background TRUE)
+ (gimp-item-set-name layer1 (car (gimp-item-get-name logo-layer)))
+ (gimp-image-remove-layer img logo-layer)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(define (script-fu-chrome-logo-alpha img
+ logo-layer
+ offsets
+ bg-color)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-chrome-logo-effect img logo-layer offsets bg-color)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-chrome-logo-alpha"
+ _"C_hrome..."
+ _"Add a simple chrome effect to the selected region (or alpha)"
+ "Spencer Kimball"
+ "Spencer Kimball & Peter Mattis"
+ "1997"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT _"Offsets (pixels * 2)" '(10 2 100 1 10 0 1)
+ SF-COLOR _"Background Color" "lightgrey"
+)
+
+(script-fu-menu-register "script-fu-chrome-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-chrome-logo text
+ size
+ font
+ bg-color)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (b-size (* size 0.2))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text b-size TRUE size PIXELS font)))
+ )
+ (gimp-image-undo-disable img)
+ (apply-chrome-logo-effect img text-layer (* size 0.1) bg-color)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-chrome-logo"
+ _"C_hrome..."
+ _"Create a simplistic, but cool, chromed logo"
+ "Spencer Kimball"
+ "Spencer Kimball & Peter Mattis"
+ "1997"
+ ""
+ SF-STRING _"Text" "GIMP"
+ SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Bodoni"
+ SF-COLOR _"Background color" "lightgrey"
+)
+
+(script-fu-menu-register "script-fu-chrome-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/comic-logo.scm b/scripts/comic-logo.scm
new file mode 100644
index 0000000..f31d693
--- /dev/null
+++ b/scripts/comic-logo.scm
@@ -0,0 +1,169 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+;
+; Comic Book Logo v0.1 04/08/98
+; by Brian McFee
+; Creates snazzy-looking text, inspired by watching a Maxx marathon :)
+
+(define (apply-comic-logo-effect img
+ logo-layer
+ gradient
+ gradient-reverse
+ ol-width
+ ol-color
+ bg-color)
+ (let* (
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (posx (- (car (gimp-drawable-offsets logo-layer))))
+ (posy (- (cadr (gimp-drawable-offsets logo-layer))))
+ (bg-layer (car (gimp-layer-new img width height RGBA-IMAGE
+ "Background" 100 NORMAL-MODE)))
+ (white-layer (car (gimp-layer-copy logo-layer 1)))
+ (black-layer (car (gimp-layer-copy logo-layer 1)))
+ )
+
+ (gimp-context-push)
+
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img black-layer white-layer bg-layer)
+ (gimp-layer-translate white-layer posx posy)
+ (gimp-item-set-name white-layer "White")
+ (gimp-layer-translate black-layer posx posy)
+ (gimp-item-set-name black-layer "Black")
+
+ (gimp-selection-all img)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-selection-none img)
+
+ (gimp-layer-set-lock-alpha white-layer TRUE)
+ (gimp-context-set-background ol-color)
+ (gimp-selection-all img)
+ (gimp-edit-fill white-layer BACKGROUND-FILL)
+ (gimp-layer-set-lock-alpha white-layer FALSE)
+ (plug-in-spread RUN-NONINTERACTIVE img white-layer (* 3 ol-width) (* 3 ol-width))
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img white-layer (* 2 ol-width) 1 1)
+ (plug-in-threshold-alpha RUN-NONINTERACTIVE img white-layer 0)
+ (gimp-layer-set-lock-alpha white-layer TRUE)
+ (gimp-edit-fill white-layer BACKGROUND-FILL)
+ (gimp-selection-none img)
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-layer-set-lock-alpha black-layer TRUE)
+ (gimp-selection-all img)
+ (gimp-edit-fill black-layer BACKGROUND-FILL)
+ (gimp-selection-none img)
+ (gimp-layer-set-lock-alpha black-layer FALSE)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img black-layer ol-width 1 1)
+ (plug-in-threshold-alpha RUN-NONINTERACTIVE img black-layer 0)
+
+ (gimp-context-set-gradient gradient)
+ (gimp-layer-set-lock-alpha logo-layer TRUE)
+ (gimp-selection-all img)
+
+ (gimp-edit-blend logo-layer CUSTOM-MODE NORMAL-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE gradient-reverse
+ FALSE 0 0 TRUE
+ 0 (* height 0.3) 0 (* height 0.78))
+
+ (plug-in-noisify RUN-NONINTERACTIVE img logo-layer 0 0.20 0.20 0.20 0.20)
+ (gimp-selection-none img)
+ (gimp-layer-set-lock-alpha logo-layer FALSE)
+ (gimp-brightness-contrast logo-layer 0 30)
+ (plug-in-threshold-alpha RUN-NONINTERACTIVE img logo-layer 60)
+ (gimp-image-set-active-layer img logo-layer)
+
+ (gimp-context-pop)
+ )
+)
+
+(define (script-fu-comic-logo-alpha img
+ logo-layer
+ gradient
+ gradient-reverse
+ ol-width
+ ol-color
+ bg-color)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-comic-logo-effect img logo-layer
+ gradient gradient-reverse
+ ol-width ol-color bg-color)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-comic-logo-alpha"
+ _"Comic Boo_k..."
+ _"Add a comic-book effect to the selected region (or alpha) by outlining and filling with a gradient"
+ "Brian McFee <keebler wco com>"
+ "Brian McFee"
+ "April 1998"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-GRADIENT _"Gradient" "Incandescent"
+ SF-TOGGLE _"Gradient reverse" FALSE
+ SF-ADJUSTMENT _"Outline size" '(5 1 100 1 10 0 1)
+ SF-COLOR _"Outline color" "white"
+ SF-COLOR _"Background color" "white"
+)
+
+(script-fu-menu-register "script-fu-comic-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-comic-logo text
+ size
+ font
+ gradient
+ gradient-reverse
+ ol-width
+ ol-color
+ bg-color)
+ (let* ((img (car (gimp-image-new 256 256 RGB)))
+ (border (/ size 4))
+ (text-layer (car (gimp-text-fontname
+ img -1 0 0 text border TRUE size PIXELS font))))
+ (gimp-image-undo-disable img)
+ (apply-comic-logo-effect img text-layer gradient gradient-reverse
+ ol-width ol-color bg-color)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-comic-logo"
+ _"Comic Boo_k..."
+ _"Create a comic-book style logo by outlining and filling with a gradient"
+ "Brian McFee <keebler wco com>"
+ "Brian McFee"
+ "April 1998"
+ ""
+ SF-STRING _"Text" "Moo"
+ SF-ADJUSTMENT _"Font size (pixels)" '(85 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Tribeca"
+ SF-GRADIENT _"Gradient" "Incandescent"
+ SF-TOGGLE _"Gradient reverse" FALSE
+ SF-ADJUSTMENT _"Outline size" '(5 1 100 1 10 0 1)
+ SF-COLOR _"Outline color" "white"
+ SF-COLOR _"Background color" "white"
+)
+
+(script-fu-menu-register "script-fu-comic-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/coolmetal-logo.scm b/scripts/coolmetal-logo.scm
new file mode 100644
index 0000000..47341c0
--- /dev/null
+++ b/scripts/coolmetal-logo.scm
@@ -0,0 +1,193 @@
+; COOL-METAL
+; Create a text effect that looks like metal with a reflection of
+; the horizon, a reflection of the text in the mirrored ground, and
+; an interesting dropshadow
+; This script was inspired by Rob Malda's 'coolmetal.gif' graphic
+
+(define (apply-cool-metal-logo-effect img
+ logo-layer
+ size
+ bg-color
+ gradient
+ gradient-reverse)
+ (let* (
+ (feather (/ size 5))
+ (smear 7.5)
+ (period (/ size 3))
+ (amplitude (/ size 40))
+ (shrink (+ 1 (/ size 30)))
+ (depth (/ size 20))
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (posx (- (car (gimp-drawable-offsets logo-layer))))
+ (posy (- (cadr (gimp-drawable-offsets logo-layer))))
+ (img-width (+ width (* 0.15 height) 10))
+ (img-height (+ (* 1.85 height) 10))
+ (bg-layer (car (gimp-layer-new img img-width img-height RGB-IMAGE "Background" 100 NORMAL-MODE)))
+ (shadow-layer (car (gimp-layer-new img img-width img-height RGBA-IMAGE "Shadow" 100 NORMAL-MODE)))
+ (reflect-layer (car (gimp-layer-new img width height RGBA-IMAGE "Reflection" 100 NORMAL-MODE)))
+ (channel 0)
+ (fs 0)
+ (layer-mask 0)
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+ (gimp-context-set-feather FALSE)
+ (gimp-context-set-interpolation INTERPOLATION-NONE)
+ (gimp-context-set-transform-resize TRANSFORM-RESIZE-ADJUST)
+
+ (gimp-selection-none img)
+ (gimp-image-resize img img-width img-height posx posy)
+ (script-fu-util-image-add-layers img shadow-layer reflect-layer bg-layer)
+ (gimp-layer-set-lock-alpha logo-layer TRUE)
+
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-edit-clear reflect-layer)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill shadow-layer BACKGROUND-FILL)
+
+ (gimp-context-set-gradient gradient)
+
+ (gimp-edit-blend logo-layer CUSTOM-MODE NORMAL-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE gradient-reverse
+ FALSE 0 0 TRUE
+ 0 0 0 (+ height 5))
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 0 (- (/ height 2) feather) img-width (* 2 feather))
+ (plug-in-gauss-iir RUN-NONINTERACTIVE img logo-layer smear TRUE TRUE)
+ (gimp-selection-none img)
+ (plug-in-ripple RUN-NONINTERACTIVE img logo-layer period amplitude 1 0 1 TRUE FALSE)
+ (gimp-layer-translate logo-layer 5 5)
+ (gimp-layer-resize logo-layer img-width img-height 5 5)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (set! channel (car (gimp-selection-save img)))
+ (gimp-selection-shrink img shrink)
+ (gimp-selection-invert img)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img channel feather TRUE TRUE)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-selection-invert img)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill channel BACKGROUND-FILL)
+ (gimp-selection-none img)
+
+ (plug-in-bump-map RUN-NONINTERACTIVE img logo-layer channel 135 45 depth 0 0 0 0 FALSE FALSE 0)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (set! fs (car (gimp-selection-float shadow-layer 0 0)))
+ (gimp-edit-clear shadow-layer)
+ (gimp-item-transform-perspective fs
+ (+ 5 (* 0.15 height)) (- height (* 0.15 height))
+ (+ 5 width (* 0.15 height)) (- height (* 0.15 height))
+ 5 height
+ (+ 5 width) height)
+ (gimp-floating-sel-anchor fs)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img shadow-layer smear TRUE TRUE)
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 5 5 width height)
+ (gimp-edit-copy logo-layer)
+ (set! fs (car (gimp-edit-paste reflect-layer FALSE)))
+ (gimp-floating-sel-anchor fs)
+ (gimp-item-transform-scale reflect-layer
+ 0 0 width (* 0.85 height))
+ (gimp-context-set-transform-resize TRANSFORM-RESIZE-CLIP)
+ (gimp-item-transform-flip-simple reflect-layer ORIENTATION-VERTICAL
+ TRUE 0)
+ (gimp-layer-set-offsets reflect-layer 5 (+ 3 height))
+
+ (set! layer-mask (car (gimp-layer-create-mask reflect-layer ADD-WHITE-MASK)))
+ (gimp-layer-add-mask reflect-layer layer-mask)
+ (gimp-context-set-foreground '(255 255 255))
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-blend layer-mask FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ 0 (- (/ height 2)) 0 height)
+
+ (gimp-image-remove-channel img channel)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(define (script-fu-cool-metal-logo-alpha img
+ logo-layer
+ size
+ bg-color
+ gradient
+ gradient-reverse)
+ (begin
+ (gimp-image-undo-group-start img)
+
+ (if (= (car (gimp-layer-is-floating-sel logo-layer)) TRUE)
+ (begin
+ (gimp-floating-sel-to-layer logo-layer)
+ (set! logo-layer (car (gimp-image-get-active-layer img)))
+ )
+ )
+
+ (apply-cool-metal-logo-effect img logo-layer size bg-color
+ gradient gradient-reverse)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-cool-metal-logo-alpha"
+ _"Cool _Metal..."
+ _"Add a metallic effect to the selected region (or alpha) with reflections and perspective shadows"
+ "Spencer Kimball & Rob Malda"
+ "Spencer Kimball & Rob Malda"
+ "1997"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT _"Effect size (pixels)" '(100 2 1000 1 10 0 1)
+ SF-COLOR _"Background color" "white"
+ SF-GRADIENT _"Gradient" "Horizon 1"
+ SF-TOGGLE _"Gradient reverse" FALSE
+)
+
+(script-fu-menu-register "script-fu-cool-metal-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-cool-metal-logo text
+ size
+ font
+ bg-color
+ gradient
+ gradient-reverse)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text 0 TRUE
+ size PIXELS font)))
+ )
+ (gimp-image-undo-disable img)
+ (apply-cool-metal-logo-effect img text-layer size bg-color
+ gradient gradient-reverse)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-cool-metal-logo"
+ _"Cool _Metal..."
+ _"Create a metallic logo with reflections and perspective shadows"
+ "Spencer Kimball & Rob Malda"
+ "Spencer Kimball & Rob Malda"
+ "1997"
+ ""
+ SF-STRING _"Text" "Cool Metal"
+ SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Crillee"
+ SF-COLOR _"Background color" "white"
+ SF-GRADIENT _"Gradient" "Horizon 1"
+ SF-TOGGLE _"Gradient reverse" FALSE
+)
+
+(script-fu-menu-register "script-fu-cool-metal-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/crystal-logo.scm b/scripts/crystal-logo.scm
new file mode 100644
index 0000000..5f58c08
--- /dev/null
+++ b/scripts/crystal-logo.scm
@@ -0,0 +1,228 @@
+; CRYSTAL
+; Create a text effect that simulates crystal
+
+(define (script-fu-crystal-logo chrome-factor text size font bg-img env-map)
+
+ (define (set-pt a index x y)
+ (begin
+ (aset a (* index 2) x)
+ (aset a (+ (* index 2) 1) y)
+ )
+ )
+
+ (define (spline1)
+ (let* ((a (cons-array 18 'byte)))
+ (set-pt a 0 0 0)
+ (set-pt a 1 31 235)
+ (set-pt a 2 63 23)
+ (set-pt a 3 95 230)
+ (set-pt a 4 127 25)
+ (set-pt a 5 159 210)
+ (set-pt a 6 191 20)
+ (set-pt a 7 223 240)
+ (set-pt a 8 255 31)
+ a
+ )
+ )
+
+ (define (crystal-brush brush-size)
+ (cond ((<= brush-size 5) "Circle (05)")
+ ((<= brush-size 7) "Circle (07)")
+ ((<= brush-size 9) "Circle (09)")
+ ((<= brush-size 11) "Circle (11)")
+ ((<= brush-size 13) "Circle (13)")
+ ((<= brush-size 15) "Circle (15)")
+ ((<= brush-size 17) "Circle (17)")
+ ((> brush-size 17) "Circle Fuzzy (19)")
+ )
+ )
+
+ (define (shadows val)
+ (/ (* 0.96 val) 2.55)
+ )
+
+ (define (midtones val)
+ (/ val 2.55)
+ )
+
+ (define (highlights val)
+ (/ (* 1.108 val) 2.55)
+ )
+
+ (define (rval col)
+ (car col)
+ )
+
+ (define (gval col)
+ (cadr col)
+ )
+
+ (define (bval col)
+ (caddr col)
+ )
+
+ (define (sota-scale val scale chrome-factor)
+ (* (sqrt val) (* scale chrome-factor))
+ )
+
+ (define (copy-layer-crystal dest-image dest-drawable source-image source-drawable)
+ (gimp-selection-all dest-image)
+ (gimp-edit-clear dest-drawable)
+ (gimp-selection-none dest-image)
+ (gimp-selection-all source-image)
+ (gimp-edit-copy source-drawable)
+ (let ((floating-sel (car (gimp-edit-paste dest-drawable FALSE))))
+ (gimp-floating-sel-anchor floating-sel)
+ )
+ )
+
+ (let* (
+ (img (car (gimp-image-new 256 256 GRAY)))
+ (back-img (car (gimp-file-load 1 bg-img bg-img)))
+ (back-layer (car (gimp-image-get-active-drawable back-img)))
+ (banding-img (car (gimp-file-load 1 env-map env-map)))
+ (banding-layer (car (gimp-image-get-active-drawable banding-img)))
+ (banding-height (car (gimp-drawable-height banding-layer)))
+ (banding-width (car (gimp-drawable-width banding-layer)))
+ (banding-type (car (gimp-drawable-type banding-layer)))
+ (b-size (sota-scale size 2 chrome-factor))
+ (offx1 (sota-scale size 0.33 chrome-factor))
+ (offy1 (sota-scale size 0.25 chrome-factor))
+ (offx2 (sota-scale size (- 0.33) chrome-factor))
+ (offy2 (sota-scale size (- 0.25) chrome-factor))
+ (feather (sota-scale size 0.5 chrome-factor))
+ (blur (sota-scale size 0.5 chrome-factor))
+ (displace (sota-scale size 0.25 chrome-factor))
+ (brush-size (sota-scale size 0.5 chrome-factor))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text b-size TRUE size PIXELS font)))
+ (width (car (gimp-drawable-width text-layer)))
+ (height (car (gimp-drawable-height text-layer)))
+ (tile-ret (plug-in-tile RUN-NONINTERACTIVE back-img back-layer width height TRUE))
+ (tile-img (car tile-ret))
+ (tile-layer (cadr tile-ret))
+ (tile-width (car (gimp-drawable-width tile-layer)))
+ (tile-height (car (gimp-drawable-height tile-layer)))
+ (tile-type (car (gimp-drawable-type tile-layer)))
+ (bg-layer (car (gimp-layer-new img tile-width tile-height tile-type "BG-Layer" 100 NORMAL-MODE)))
+ (layer1 (car (gimp-layer-new img banding-width banding-height banding-type "Layer1" 100
NORMAL-MODE)))
+ (layer2 (car (gimp-layer-new img width height GRAYA-IMAGE "Layer 2" 100 DIFFERENCE-MODE)))
+ (layer3 (car (gimp-layer-new img width height GRAYA-IMAGE "Layer 3" 100 NORMAL-MODE)))
+ (layer-mask 0)
+ (layer-mask2 0)
+ (disp-map 0)
+ )
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-delete back-img)
+ (gimp-image-undo-disable img)
+ (gimp-image-resize img width height 0 0)
+ (gimp-image-insert-layer img layer3 0 0)
+ (gimp-image-insert-layer img layer2 0 0)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-selection-none img)
+ (gimp-edit-fill layer2 BACKGROUND-FILL)
+ (gimp-edit-fill layer3 BACKGROUND-FILL)
+ (gimp-item-set-visible text-layer FALSE)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE text-layer)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-selection-translate img offx1 offy1)
+ (gimp-selection-feather img feather)
+ (gimp-edit-fill layer2 BACKGROUND-FILL)
+ (gimp-selection-translate img (* 2 offx2) (* 2 offy2))
+ (gimp-edit-fill layer3 BACKGROUND-FILL)
+ (gimp-selection-none img)
+ (set! layer2 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
+ (gimp-invert layer2)
+
+ (gimp-image-insert-layer img layer1 0 0)
+ (copy-layer-crystal img layer1 banding-img banding-layer)
+ (gimp-image-delete banding-img)
+ (gimp-layer-scale layer1 width height FALSE)
+ (plug-in-gauss-iir RUN-NONINTERACTIVE img layer1 10 TRUE TRUE)
+ (gimp-layer-set-opacity layer1 50)
+ (set! layer1 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
+ (gimp-curves-spline layer1 0 18 (spline1))
+
+ (set! layer-mask (car (gimp-layer-create-mask layer1 ADD-BLACK-MASK)))
+ (gimp-layer-add-mask layer1 layer-mask)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE text-layer)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill layer-mask BACKGROUND-FILL)
+
+ (set! disp-map (car (gimp-selection-save img)))
+ (gimp-context-set-brush (crystal-brush brush-size))
+ (gimp-context-set-foreground '(0 0 0))
+ (gimp-edit-stroke disp-map)
+ (gimp-selection-none img)
+
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img disp-map blur TRUE TRUE)
+ (gimp-levels disp-map 0 0 255 1.0 96 255)
+
+ (if (= (car (gimp-drawable-is-rgb bg-layer)) 1)
+ (gimp-image-convert-rgb img))
+
+
+
+ (gimp-image-insert-layer img bg-layer 0 2)
+ (copy-layer-crystal img bg-layer tile-img tile-layer)
+ (gimp-image-delete tile-img)
+ (set! layer2 (car (gimp-layer-copy bg-layer TRUE)))
+ (gimp-image-insert-layer img layer2 0 1)
+
+ (plug-in-displace RUN-NONINTERACTIVE img layer2 displace displace TRUE TRUE disp-map disp-map 0)
+ (set! layer-mask2 (car (gimp-layer-create-mask layer2 ADD-BLACK-MASK)))
+ (gimp-layer-add-mask layer2 layer-mask2)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE text-layer)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill layer-mask2 BACKGROUND-FILL)
+
+ (gimp-selection-none img)
+ (gimp-levels layer2 0 0 200 1.5 50 255)
+ (gimp-layer-set-mode layer1 OVERLAY-MODE)
+
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img text-layer blur TRUE TRUE)
+ (gimp-layer-set-lock-alpha text-layer TRUE)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill text-layer BACKGROUND-FILL)
+ (gimp-layer-set-mode text-layer OVERLAY-MODE)
+ (gimp-layer-translate text-layer offx1 offy1)
+
+ (gimp-image-remove-channel img disp-map)
+
+ (gimp-item-set-visible text-layer TRUE)
+ (gimp-item-set-name layer1 "Crystal")
+ (gimp-item-set-name layer2 "Interior")
+ (gimp-item-set-name bg-layer "Background")
+ (gimp-item-set-name text-layer "Shadow")
+
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(script-fu-register "script-fu-crystal-logo"
+ _"Crystal..."
+ _"Create a logo with a crystal/gel effect displacing the image underneath"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1997"
+ ""
+ SF-ADJUSTMENT _"Chrome factor" '(1.0 0.2 4 0.1 1 1 0)
+ SF-STRING _"Text" "Crystal"
+ SF-ADJUSTMENT _"Font size (pixels)" '(150 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Engraver"
+ SF-FILENAME _"Background image"
+ (string-append gimp-data-directory
+ "/scripts/images/texture1.jpg")
+ SF-FILENAME _"Environment map"
+ (string-append gimp-data-directory
+ "/scripts/images/beavis.jpg")
+)
+
+(script-fu-menu-register "script-fu-crystal-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/flatland.scm b/scripts/flatland.scm
new file mode 100644
index 0000000..fe3261b
--- /dev/null
+++ b/scripts/flatland.scm
@@ -0,0 +1,75 @@
+
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; FlatLand - creates a tileable pattern that looks like a map
+; Copyright (C) 1997 Adrian Likins
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+;
+; FlatLand
+;
+; When used with the Land gradient It produces a tileble pattern that
+; looks a lot like a map.
+;
+; Should be really cool once map-sphere starts working again.
+;
+; To use: open gradient editor, load the Land gradient then run the script.
+;
+; Adrian Likins <aklikins eos ncsu edu>
+;
+
+
+(define (script-fu-flatland width height seed detail xscale yscale)
+ (let* (
+ (img (car (gimp-image-new width height RGB)))
+ (layer-one (car (gimp-layer-new img width height
+ RGB-IMAGE "bottom" 100 NORMAL-MODE)))
+ (layer-two 0)
+ )
+
+ (gimp-image-undo-disable img)
+ (gimp-image-insert-layer img layer-one 0 0)
+ ; (gimp-img-add-layer img layer-two 1)
+
+ (plug-in-solid-noise RUN-NONINTERACTIVE img layer-one 1 0 seed detail xscale yscale )
+ (plug-in-c-astretch RUN-NONINTERACTIVE img layer-one)
+ (set! layer-two (car (gimp-layer-copy layer-one TRUE)))
+ (gimp-image-insert-layer img layer-two 0 -1)
+ (gimp-image-set-active-layer img layer-two)
+
+ (plug-in-gradmap RUN-NONINTERACTIVE img layer-two)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-flatland"
+ _"_Flatland..."
+ _"Create an image filled with a Land Pattern"
+ "Adrian Likins <aklikins eos ncsu edu>"
+ "Adrian Likins"
+ "1997"
+ ""
+ SF-ADJUSTMENT _"Image width" '(256 10 2000 1 10 0 1)
+ SF-ADJUSTMENT _"Image height" '(256 10 2000 1 10 0 1)
+ SF-ADJUSTMENT _"Random seed" '(80 1 2000000 1 10 0 1)
+ SF-ADJUSTMENT _"Detail level" '(3 1 15 1 10 1 0)
+ SF-ADJUSTMENT _"Scale X" '(4 0.1 16 0.1 2 1 1)
+ SF-ADJUSTMENT _"Scale Y" '(4 0.1 16 0.1 2 1 1)
+)
+
+(script-fu-menu-register "script-fu-flatland"
+ "<Image>/File/Create/Patterns")
diff --git a/scripts/frosty-logo.scm b/scripts/frosty-logo.scm
new file mode 100644
index 0000000..b7eb809
--- /dev/null
+++ b/scripts/frosty-logo.scm
@@ -0,0 +1,210 @@
+; FROZEN-TEXT effect
+; Thanks to Ed Mackey for this one
+; Written by Spencer Kimball
+
+(define (apply-frosty-logo-effect img
+ logo-layer
+ size
+ bg-color
+ isnew) ; The parameter isnew is used
+ ; when the script is called
+ ; using the logo script (not
+ ; alpha to logo), in order to
+ ; make sure some actions are
+ ; performed only then
+ (let* (
+ (border (/ size 5))
+ (width (+ (car (gimp-drawable-width logo-layer)) border))
+ (height (+ (car (gimp-drawable-height logo-layer)) border))
+ (logo-layer-mask (car (gimp-layer-create-mask logo-layer
+ ADD-BLACK-MASK)))
+ (sparkle-layer (car (gimp-layer-new img width height RGBA-IMAGE
+ "Sparkle" 100 NORMAL-MODE)))
+ (matte-layer (car (gimp-layer-new img width height RGBA-IMAGE
+ "Matte" 100 NORMAL-MODE)))
+ (shadow-layer (car (gimp-layer-new img
+ (+ border width)
+ (+ border height)
+ RGBA-IMAGE
+ "Shadow" 90 MULTIPLY-MODE)))
+ (bg-layer (car (gimp-layer-new img width height RGB-IMAGE
+ "Background" 100 NORMAL-MODE)))
+ (selection 0)
+ (stack (car (gimp-image-get-item-position img logo-layer)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (if ( = isnew 1) (script-fu-util-image-resize-from-layer img shadow-layer))
+
+ (gimp-layer-add-mask logo-layer logo-layer-mask)
+ (gimp-image-insert-layer img sparkle-layer 0 (+ 1 stack))
+ (gimp-image-insert-layer img matte-layer 0 (+ 2 stack))
+ (gimp-image-insert-layer img shadow-layer 0 (+ 3 stack))
+ (gimp-layer-translate shadow-layer (- border) (- border))
+ (gimp-image-insert-layer img bg-layer 0 5)
+ (gimp-selection-none img)
+ (gimp-edit-clear sparkle-layer)
+ (gimp-edit-clear matte-layer)
+ (gimp-edit-clear shadow-layer)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (set! selection (car (gimp-selection-save img)))
+ (gimp-selection-feather img border)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill sparkle-layer BACKGROUND-FILL)
+ (plug-in-noisify RUN-NONINTERACTIVE img sparkle-layer FALSE 0.2 0.2 0.2 0.0)
+ (plug-in-c-astretch RUN-NONINTERACTIVE img sparkle-layer)
+ (gimp-selection-none img)
+ (plug-in-sparkle RUN-NONINTERACTIVE 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)
+ (gimp-levels sparkle-layer 1 0 255 0.2 0 255)
+ (gimp-levels sparkle-layer 2 0 255 0.7 0 255)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE sparkle-layer)
+ (gimp-context-set-foreground '(0 0 0))
+ (gimp-context-set-brush "Circle Fuzzy (11)")
+ (gimp-edit-stroke matte-layer)
+ (gimp-selection-feather img border)
+ (gimp-edit-fill shadow-layer BACKGROUND-FILL)
+ (gimp-selection-none img)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill logo-layer BACKGROUND-FILL)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill logo-layer-mask BACKGROUND-FILL)
+ (gimp-selection-feather img border)
+ (gimp-selection-translate img (/ border 2) (/ border 2))
+ (gimp-edit-fill logo-layer BACKGROUND-FILL)
+ (gimp-layer-remove-mask logo-layer 0)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (gimp-context-set-brush "Circle Fuzzy (07)")
+ (gimp-context-set-paint-mode BEHIND-MODE)
+ (gimp-context-set-foreground '(186 241 255))
+ (gimp-edit-stroke logo-layer)
+ (gimp-selection-none img)
+ (gimp-image-remove-channel img selection)
+
+ (gimp-layer-translate shadow-layer border border)
+
+ (if ( = isnew 1) (script-fu-util-image-resize-from-layer img logo-layer))
+
+ (gimp-layer-translate bg-layer (- 0 border) (- 0 border))
+
+ (gimp-context-pop)
+ )
+)
+
+(define (script-fu-frosty-logo-alpha img
+ logo-layer
+ size
+ bg-color)
+
+ (gimp-image-undo-group-start img)
+
+ ;Checking if the effect size is to big or not
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-selection-feather img (/ size 5))
+ (gimp-selection-sharpen img)
+
+ (if (= 1 (car(gimp-selection-is-empty img)))
+ (begin
+ (gimp-image-undo-group-end img)
+ (gimp-selection-none img)
+ (gimp-message "Your layer's opaque parts are either too small for
+this effect size, or they are not inside the canvas.")
+ )
+ )
+
+ (if (= 0 (car(gimp-selection-is-empty img)))
+ (begin
+ (gimp-selection-none img)
+ (gimp-layer-resize-to-image-size logo-layer)
+ (apply-frosty-logo-effect img logo-layer size bg-color 0)
+
+ (gimp-selection-none img)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+ )
+)
+
+(script-fu-register "script-fu-frosty-logo-alpha"
+ _"_Frosty..."
+ _"Add a frost effect to the selected region (or alpha) with an added drop shadow"
+ "Spencer Kimball & Ed Mackey"
+ "Spencer Kimball & Ed Mackey"
+ "1997"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT _"Effect size (pixels)" '(100 2 1000 1 10 0 1)
+ SF-COLOR _"Background color" "white"
+)
+
+(script-fu-menu-register "script-fu-frosty-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-frosty-logo text
+ size
+ font
+ bg-color)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (border (/ size 5))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text (* border 2) TRUE size PIXELS font)))
+ (error-string "The text you entered contains only spaces.")
+ )
+
+ (if (= text-layer -1) ; checking that the text layer was created
+ ; succesfully - it has more then just
+ ; empty charcters
+ (begin
+ (gimp-image-delete img)
+ (gimp-message error-string)
+ )
+ (begin ; Checking if the effect size is too big or not
+ (gimp-image-undo-disable img)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE text-layer)
+ (gimp-selection-feather img border)
+ (gimp-selection-sharpen img)
+
+ (if (= 0 (car(gimp-selection-is-empty img))) ; Checking whether
+ ; the effect size
+ ; is too big
+ (begin
+ (apply-frosty-logo-effect img text-layer size bg-color 1)
+ (gimp-selection-all img)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+ )
+ (if (= 1 (car(gimp-selection-is-empty img)))
+ (begin
+ (gimp-image-delete img)
+ (gimp-message error-string)
+ )
+ )
+ )
+ )
+ )
+)
+
+(script-fu-register "script-fu-frosty-logo"
+ _"_Frosty..."
+ _"Create frozen logo with an added drop shadow"
+ "Spencer Kimball & Ed Mackey"
+ "Spencer Kimball & Ed Mackey"
+ "1997"
+ ""
+ SF-STRING _"Text" "GIMP"
+ SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Becker"
+ SF-COLOR _"Background color" "white"
+)
+
+(script-fu-menu-register "script-fu-frosty-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/glossy.scm b/scripts/glossy.scm
new file mode 100644
index 0000000..0df4dd5
--- /dev/null
+++ b/scripts/glossy.scm
@@ -0,0 +1,295 @@
+; glossy-patterned-shadowed-and-bump-mapped-logo
+; creates anything you can create with it :)
+; (use it wisely, use it in peace...)
+;
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; glossy gives a glossy outlook to your fonts (unlogical name, isn't it?)
+; Copyright (C) 1998 Hrvoje Horvat
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+(define (apply-glossy-logo-effect img
+ logo-layer
+ blend-gradient-text
+ blend-gradient-text-reverse
+ blend-gradient-outline
+ blend-gradient-outline-reverse
+ grow-size
+ bg-color
+ use-pattern-text
+ pattern-text
+ use-pattern-outline
+ pattern-outline
+ use-pattern-overlay
+ pattern-overlay
+ noninteractive
+ shadow-toggle
+ s-offset-x
+ s-offset-y)
+ (let* (
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (posx (- (car (gimp-drawable-offsets logo-layer))))
+ (posy (- (cadr (gimp-drawable-offsets logo-layer))))
+ (bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
+ (grow-me (car (gimp-layer-copy logo-layer TRUE)))
+ (dont-drop-me 0)
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img grow-me bg-layer)
+ (gimp-item-set-name grow-me "Grow-me")
+ (gimp-layer-translate grow-me posx posy)
+
+ (gimp-context-set-background bg-color)
+ (gimp-selection-all img)
+ (gimp-edit-bucket-fill bg-layer BG-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
+ (gimp-selection-none img)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+
+; if we are going to use transparent gradients for text, we will (maybe) need to uncomment this
+; this clears black letters first so you don't end up with black where the transparent should be
+; (gimp-edit-clear img logo-layer)
+
+ (if (= use-pattern-text TRUE)
+ (begin
+ (gimp-context-set-pattern pattern-text)
+ (gimp-edit-bucket-fill logo-layer
+ PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
+ )
+ )
+
+ (if (= use-pattern-text FALSE)
+ (begin
+ (gimp-context-set-gradient blend-gradient-text)
+
+ (gimp-edit-blend logo-layer CUSTOM-MODE NORMAL-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE
+ blend-gradient-text-reverse
+ FALSE 0 0 TRUE
+ 0 0 0 (+ height 5))
+ )
+ )
+
+ (gimp-selection-none img)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE grow-me)
+ (gimp-selection-grow img grow-size)
+
+; if we are going to use transparent gradients for outline, we will (maybe) need to uncomment this
+; I didn't put it in the options because there are already enough settings there and anyway, transparent
+; gradients will be used very rarely (if ever)
+; (gimp-edit-clear img grow-me)
+
+ (if (= use-pattern-outline TRUE)
+ (begin
+ (gimp-context-set-pattern pattern-outline)
+ (gimp-edit-bucket-fill grow-me
+ PATTERN-BUCKET-FILL NORMAL-MODE 100
+ 0 FALSE 0 0)
+ )
+ )
+
+ (if (= use-pattern-outline FALSE)
+ (begin
+ (gimp-context-set-gradient blend-gradient-outline)
+
+ (gimp-edit-blend grow-me CUSTOM-MODE NORMAL-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE
+ blend-gradient-outline-reverse
+ FALSE 0 0 TRUE
+ 0 0 0 (+ height 5))
+ )
+ )
+
+ (gimp-selection-none img)
+
+ (plug-in-bump-map (if (= noninteractive TRUE)
+ RUN-NONINTERACTIVE
+ RUN-INTERACTIVE)
+ img grow-me logo-layer
+ 110.0 45.0 3 0 0 0 0 TRUE FALSE 0)
+ (gimp-layer-set-mode logo-layer SCREEN-MODE)
+
+ (if (= use-pattern-overlay TRUE)
+ (begin
+ (gimp-image-select-item img CHANNEL-OP-REPLACE grow-me)
+ (gimp-context-set-pattern pattern-overlay)
+ (gimp-edit-bucket-fill grow-me PATTERN-BUCKET-FILL
+ OVERLAY-MODE 100 0 FALSE 0 0)
+ (gimp-selection-none img)
+ )
+ )
+
+ (if (= shadow-toggle TRUE)
+ (begin
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (set! dont-drop-me (car (script-fu-drop-shadow img logo-layer
+ s-offset-x s-offset-y
+ 15 '(0 0 0) 80 TRUE)))
+ (set! width (car (gimp-image-width img)))
+ (set! height (car (gimp-image-height img)))
+ (gimp-selection-none img)
+ )
+ )
+
+ (gimp-context-pop)
+ )
+)
+
+
+(define (script-fu-glossy-logo-alpha img
+ logo-layer
+ blend-gradient-text
+ blend-gradient-text-reverse
+ blend-gradient-outline
+ blend-gradient-outline-reverse
+ grow-size
+ bg-color
+ use-pattern-text
+ pattern-text
+ use-pattern-outline
+ pattern-outline
+ use-pattern-overlay
+ pattern-overlay
+ noninteractive
+ shadow-toggle
+ s-offset-x
+ s-offset-y)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-glossy-logo-effect img logo-layer
+ blend-gradient-text
+ blend-gradient-text-reverse
+ blend-gradient-outline
+ blend-gradient-outline-reverse
+ grow-size bg-color
+ use-pattern-text pattern-text
+ use-pattern-outline pattern-outline
+ use-pattern-overlay pattern-overlay
+ noninteractive shadow-toggle
+ s-offset-x s-offset-y)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+
+(script-fu-register "script-fu-glossy-logo-alpha"
+ _"Glo_ssy..."
+ _"Add gradients, patterns, shadows, and bump maps to the selected region (or alpha)"
+ "Hrvoje Horvat (hhorvat open hr)"
+ "Hrvoje Horvat"
+ "14/04/1998"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-GRADIENT _"Blend gradient (text)" "Shadows 2"
+ SF-TOGGLE _"Text gradient reverse" FALSE
+ SF-GRADIENT _"Blend gradient (outline)" "Shadows 2"
+ SF-TOGGLE _"Outline gradient reverse" FALSE
+ SF-ADJUSTMENT _"Outline size" '(5 0 250 1 10 0 1)
+ SF-COLOR _"Background color" "white"
+ SF-TOGGLE _"Use pattern for text instead of gradient" FALSE
+ SF-PATTERN _"Pattern (text)" "Electric Blue"
+ SF-TOGGLE _"Use pattern for outline instead of gradient" FALSE
+ SF-PATTERN _"Pattern (outline)" "Electric Blue"
+ SF-TOGGLE _"Use pattern overlay" FALSE
+ SF-PATTERN _"Pattern (overlay)" "Parque #1"
+ SF-TOGGLE _"Default bumpmap settings" TRUE
+ SF-TOGGLE _"Shadow" TRUE
+ SF-ADJUSTMENT _"Shadow X offset" '(8 0 100 1 10 0 1)
+ SF-ADJUSTMENT _"Shadow Y offset" '(8 0 100 1 10 0 1)
+)
+
+(script-fu-menu-register "script-fu-glossy-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-glossy-logo text
+ size
+ font
+ blend-gradient-text
+ blend-gradient-text-reverse
+ blend-gradient-outline
+ blend-gradient-outline-reverse
+ grow-size
+ bg-color
+ use-pattern-text
+ pattern-text
+ use-pattern-outline
+ pattern-outline
+ use-pattern-overlay
+ pattern-overlay
+ noninteractive
+ shadow-toggle
+ s-offset-x
+ s-offset-y)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text 30 TRUE size PIXELS font)))
+ )
+ (gimp-image-undo-disable img)
+ (apply-glossy-logo-effect img text-layer
+ blend-gradient-text
+ blend-gradient-text-reverse
+ blend-gradient-outline
+ blend-gradient-outline-reverse
+ grow-size bg-color
+ use-pattern-text pattern-text
+ use-pattern-outline pattern-outline
+ use-pattern-overlay pattern-overlay
+ noninteractive shadow-toggle
+ s-offset-x s-offset-y)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-glossy-logo"
+ _"Glo_ssy..."
+ _"Create a logo with gradients, patterns, shadows, and bump maps"
+ "Hrvoje Horvat (hhorvat open hr)"
+ "Hrvoje Horvat"
+ "14/04/1998"
+ ""
+ SF-STRING _"Text" "Galaxy"
+ SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Eras"
+ SF-GRADIENT _"Blend gradient (text)" "Shadows 2"
+ SF-TOGGLE _"Text gradient reverse" FALSE
+ SF-GRADIENT _"Blend gradient (outline)" "Shadows 2"
+ SF-TOGGLE _"Outline gradient reverse" FALSE
+ SF-ADJUSTMENT _"Outline size" '(5 0 250 1 10 0 1)
+ SF-COLOR _"Background color" "white"
+ SF-TOGGLE _"Use pattern for text instead of gradient" FALSE
+ SF-PATTERN _"Pattern (text)" "Electric Blue"
+ SF-TOGGLE _"Use pattern for outline instead of gradient" FALSE
+ SF-PATTERN _"Pattern (outline)" "Electric Blue"
+ SF-TOGGLE _"Use pattern overlay" FALSE
+ SF-PATTERN _"Pattern (overlay)" "Parque #1"
+ SF-TOGGLE _"Default bumpmap settings" TRUE
+ SF-TOGGLE _"Shadow" TRUE
+ SF-ADJUSTMENT _"Shadow X offset" '(8 0 100 1 10 0 1)
+ SF-ADJUSTMENT _"Shadow Y offset" '(8 0 100 1 10 0 1)
+)
+
+(script-fu-menu-register "script-fu-glossy-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/glowing-logo.scm b/scripts/glowing-logo.scm
new file mode 100644
index 0000000..8bfb1e0
--- /dev/null
+++ b/scripts/glowing-logo.scm
@@ -0,0 +1,122 @@
+; GLOWING
+; Create a text effect that simulates a glowing hot logo
+
+(define (apply-glowing-logo-effect img
+ logo-layer
+ size
+ bg-color)
+ (let* (
+ (grow (/ size 4))
+ (feather1 (/ size 3))
+ (feather2 (/ size 7))
+ (feather3 (/ size 10))
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (posx (- (car (gimp-drawable-offsets logo-layer))))
+ (posy (- (cadr (gimp-drawable-offsets logo-layer))))
+ (glow-layer (car (gimp-layer-copy logo-layer TRUE)))
+ (bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img glow-layer bg-layer)
+ (gimp-layer-translate glow-layer posx posy)
+
+ (gimp-selection-none img)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+
+ (gimp-layer-set-lock-alpha logo-layer TRUE)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill logo-layer BACKGROUND-FILL)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-selection-feather img feather1)
+ (gimp-context-set-background '(221 0 0))
+ (gimp-edit-fill glow-layer BACKGROUND-FILL)
+ (gimp-edit-fill glow-layer BACKGROUND-FILL)
+ (gimp-edit-fill glow-layer BACKGROUND-FILL)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-selection-feather img feather2)
+ (gimp-context-set-background '(232 217 18))
+ (gimp-edit-fill glow-layer BACKGROUND-FILL)
+ (gimp-edit-fill glow-layer BACKGROUND-FILL)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-selection-feather img feather3)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill glow-layer BACKGROUND-FILL)
+ (gimp-selection-none img)
+
+ (gimp-layer-set-mode logo-layer OVERLAY-MODE)
+ (gimp-item-set-name glow-layer "Glow Layer")
+
+ (gimp-context-pop)
+ )
+)
+
+
+(define (script-fu-glowing-logo-alpha img
+ logo-layer
+ size
+ bg-color)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-glowing-logo-effect img logo-layer (* size 3) bg-color)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-glowing-logo-alpha"
+ _"Glo_wing Hot..."
+ _"Add a glowing hot metal effect to the selected region (or alpha)"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1997"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT _"Effect size (pixels)" '(50 1 500 1 10 0 1)
+ SF-COLOR _"Background color" '(7 0 20)
+)
+
+(script-fu-menu-register "script-fu-glowing-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-glowing-logo text
+ size
+ font
+ bg-color)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (border (/ size 4))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text border TRUE size PIXELS font)))
+ )
+ (gimp-image-undo-disable img)
+ (apply-glowing-logo-effect img text-layer size bg-color)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-glowing-logo"
+ _"Glo_wing Hot..."
+ _"Create a logo that looks like glowing hot metal"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1997"
+ ""
+ SF-STRING _"Text" "GLOWING"
+ SF-ADJUSTMENT _"Font size (pixels)" '(150 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Slogan"
+ SF-COLOR _"Background color" '(7 0 20)
+)
+
+(script-fu-menu-register "script-fu-glowing-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/gradient-bevel-logo.scm b/scripts/gradient-bevel-logo.scm
new file mode 100644
index 0000000..6021d24
--- /dev/null
+++ b/scripts/gradient-bevel-logo.scm
@@ -0,0 +1,148 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+;
+; Gradient Bevel v0.1 04/08/98
+; by Brian McFee <keebler wco com>
+; Create cool glossy bevelly text
+
+(define (apply-gradient-bevel-logo-effect img
+ logo-layer
+ b-size
+ bevel-height
+ bevel-width
+ bg-color)
+ (let* (
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (indentX (+ b-size 12))
+ (indentY (+ b-size (/ height 8)))
+ (bg-layer (car (gimp-layer-new img width height RGBA-IMAGE "Background" 100 NORMAL-MODE)))
+ (blur-layer (car (gimp-layer-new img width height RGBA-IMAGE "Blur" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img blur-layer bg-layer)
+
+ (gimp-selection-all img)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-selection-none img)
+
+ (gimp-layer-set-lock-alpha blur-layer TRUE)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-selection-all img)
+ (gimp-edit-fill blur-layer BACKGROUND-FILL)
+ (gimp-edit-clear blur-layer)
+ (gimp-selection-none img)
+ (gimp-layer-set-lock-alpha blur-layer FALSE)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-edit-fill blur-layer BACKGROUND-FILL)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img blur-layer bevel-width 1 1)
+ (gimp-selection-none img)
+ (gimp-context-set-background '(127 127 127))
+ (gimp-context-set-foreground '(255 255 255))
+ (gimp-layer-set-lock-alpha logo-layer TRUE)
+ (gimp-selection-all img)
+
+ (gimp-edit-blend logo-layer FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-RADIAL 95 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ indentX indentY indentX (- height indentY))
+
+ (gimp-selection-none img)
+ (gimp-layer-set-lock-alpha logo-layer FALSE)
+ (plug-in-bump-map RUN-NONINTERACTIVE img logo-layer blur-layer 115 bevel-height 5 0 0 0 15 TRUE FALSE 0)
+ (gimp-layer-set-offsets blur-layer 5 5)
+ (gimp-invert blur-layer)
+ (gimp-layer-set-opacity blur-layer 50.0)
+ (gimp-image-set-active-layer img logo-layer)
+
+ (gimp-context-pop)
+ )
+)
+
+(define (script-fu-gradient-bevel-logo-alpha img
+ logo-layer
+ b-size
+ bevel-height
+ bevel-width
+ bg-color)
+ (gimp-image-undo-group-start img)
+ (apply-gradient-bevel-logo-effect img logo-layer b-size
+ bevel-height bevel-width bg-color)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+)
+
+(script-fu-register "script-fu-gradient-bevel-logo-alpha"
+ _"Gradient Beve_l..."
+ _"Add a shiny look and bevel effect to the selected region (or alpha)"
+ "Brian McFee <keebler wco com>"
+ "Brian McFee"
+ "April 1998"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT _"Border size (pixels)" '(22 1 300 1 10 0 1)
+ SF-ADJUSTMENT _"Bevel height (sharpness)" '(40 1 250 1 10 0 1)
+ SF-ADJUSTMENT _"Bevel width" '(2.5 1 200 1 10 1 1)
+ SF-COLOR _"Background color" "white"
+)
+
+(script-fu-menu-register "script-fu-gradient-bevel-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-gradient-bevel-logo text
+ size
+ font
+ bevel-height
+ bevel-width
+ bg-color)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (border (/ size 4))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text
+ border TRUE size PIXELS font)))
+ )
+ (gimp-image-undo-disable img)
+ (apply-gradient-bevel-logo-effect img text-layer border
+ bevel-height bevel-width bg-color)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-gradient-bevel-logo"
+ _"Gradient Beve_l..."
+ _"Create a logo with a shiny look and beveled edges"
+ "Brian McFee <keebler wco com>"
+ "Brian McFee"
+ "April 1998"
+ ""
+ SF-STRING _"Text" "Moo"
+ SF-ADJUSTMENT _"Font size (pixels)" '(90 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Sans Bold"
+ SF-ADJUSTMENT _"Bevel height (sharpness)" '(40 1 250 1 10 0 1)
+ SF-ADJUSTMENT _"Bevel width" '(2.5 1 200 1 10 1 1)
+ SF-COLOR _"Background color" "white"
+)
+
+(script-fu-menu-register "script-fu-gradient-bevel-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/i26-gunya2.scm b/scripts/i26-gunya2.scm
new file mode 100644
index 0000000..225b4d7
--- /dev/null
+++ b/scripts/i26-gunya2.scm
@@ -0,0 +1,107 @@
+;;; i26-gunya2.scm -*-scheme-*-
+;;; Time-stamp: <1997/05/11 18:46:26 narazaki InetQ or jp>
+;;; Author: Shuji Narazaki (narazaki InetQ or jp)
+; ************************************************************************
+; Changed on Feb 4, 1999 by Piet van Oostrum <piet cs uu nl>
+; For use with GIMP 1.1.
+; All calls to gimp-text-* have been converted to use the *-fontname form.
+; The corresponding parameters have been replaced by an SF-FONT parameter.
+; ************************************************************************
+
+;;; Comment:
+;;; This is the first font decoration of Imigre-26 (i26)
+;;; Code:
+
+(define (script-fu-i26-gunya2 text text-color frame-color font font-size frame-size)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (border (/ font-size 10))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text (* border 2)
+ TRUE font-size PIXELS font)))
+ (width (car (gimp-drawable-width text-layer)))
+ (height (car (gimp-drawable-height text-layer)))
+ (dist-text-layer (car (gimp-layer-new img width height RGBA-IMAGE
+ "Distorted text" 100 NORMAL-MODE)))
+ (dist-frame-layer (car (gimp-layer-new img width height RGBA-IMAGE
+ "Distorted text" 100 NORMAL-MODE)))
+ (distortion-img (car (gimp-image-new width height GRAY)))
+ (distortion-layer (car (gimp-layer-new distortion-img width height
+ GRAY-IMAGE "temp" 100 NORMAL-MODE)))
+ (radius (/ font-size 10))
+ (prob 0.5)
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-undo-disable distortion-img)
+ (gimp-image-resize img width height 0 0)
+ (gimp-image-insert-layer img dist-text-layer 0 -1)
+ (gimp-image-insert-layer img dist-frame-layer 0 -1)
+ (gimp-image-insert-layer distortion-img distortion-layer 0 -1)
+ (gimp-selection-none img)
+ (gimp-edit-clear dist-text-layer)
+ (gimp-edit-clear dist-frame-layer)
+ ;; get the text shape
+ (gimp-image-select-item img CHANNEL-OP-REPLACE text-layer)
+ ;; fill it with the specified color
+ (gimp-context-set-foreground text-color)
+ (gimp-edit-fill dist-text-layer FOREGROUND-FILL)
+ ;; get the border shape
+ (gimp-selection-border img frame-size)
+ (gimp-context-set-background frame-color)
+ (gimp-edit-fill dist-frame-layer BACKGROUND-FILL)
+ (gimp-selection-none img)
+ ;; now make the distortion data
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill distortion-layer BACKGROUND-FILL)
+ (plug-in-noisify RUN-NONINTERACTIVE distortion-img distortion-layer FALSE prob prob prob 0.0)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE distortion-img distortion-layer radius 1 1)
+ (plug-in-c-astretch RUN-NONINTERACTIVE distortion-img distortion-layer)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE distortion-img distortion-layer radius 1 1)
+ ;; OK, apply it to dist-text-layer
+ (plug-in-displace RUN-NONINTERACTIVE img dist-text-layer radius radius 1 1
+ distortion-layer distortion-layer 0)
+ ;; make the distortion data once again fro the frame
+ (gimp-edit-fill distortion-layer BACKGROUND-FILL)
+ (plug-in-noisify RUN-NONINTERACTIVE distortion-img distortion-layer FALSE prob prob prob 0.0)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE distortion-img distortion-layer radius 1 1)
+ (plug-in-c-astretch RUN-NONINTERACTIVE distortion-img distortion-layer)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE distortion-img distortion-layer radius 1 1)
+ ;; then, apply it to dist-frame-layer
+ (plug-in-displace RUN-NONINTERACTIVE img dist-frame-layer radius radius 1 1
+ distortion-layer distortion-layer 0)
+ ;; Finally, clear the bottom layer (text-layer)
+ (gimp-selection-all img)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill text-layer BACKGROUND-FILL)
+ ;; post processing
+ (gimp-image-set-active-layer img dist-text-layer)
+ (gimp-selection-none img)
+ (gimp-image-undo-enable img)
+ (gimp-image-delete distortion-img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(script-fu-register "script-fu-i26-gunya2"
+ _"Imigre-_26..."
+ _"Create a logo in a two-color, scribbled text style"
+ "Shuji Narazaki"
+ "Shuji Narazaki"
+ "1997"
+ ""
+ SF-STRING _"Text" "GIMP"
+ SF-COLOR _"Text color" "red"
+ SF-COLOR _"Frame color" '(0 34 255)
+ SF-FONT _"Font" "Becker"
+ SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
+ SF-ADJUSTMENT _"Frame size" '(2 1 20 1 5 0 1)
+)
+
+(script-fu-menu-register "script-fu-i26-gunya2"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/land.scm b/scripts/land.scm
new file mode 100644
index 0000000..b514cf9
--- /dev/null
+++ b/scripts/land.scm
@@ -0,0 +1,91 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Land --- create a pattern that resembles a Topographic map
+; Copyright (C) 1997 Adrian Karstan Likins
+; aklikins eos ncsu edu
+;
+;
+; This script works on the current gradient you have loaded.
+; Some suggested gradients:
+; Land (produces a earthlike map)
+; Brushed_aluminum (looks like the moon)
+;
+;
+; Thanks to Quartic for helping me debug this thing.
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+
+(define (script-fu-land width height seed detail landheight seadepth xscale yscale gradient)
+ (let* (
+ (img (car (gimp-image-new width height RGB)))
+ (layer-one (car (gimp-layer-new img width height
+ RGB-IMAGE "Bottom" 100 NORMAL-MODE)))
+ (layer-two 0)
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+ (gimp-context-set-gradient gradient)
+ (gimp-image-undo-disable img)
+ (gimp-image-insert-layer img layer-one 0 0)
+
+ (plug-in-solid-noise RUN-NONINTERACTIVE img layer-one TRUE FALSE seed detail xscale yscale)
+ (plug-in-c-astretch RUN-NONINTERACTIVE img layer-one)
+ (set! layer-two (car (gimp-layer-copy layer-one TRUE)))
+ (gimp-image-insert-layer img layer-two 0 -1)
+ (gimp-image-set-active-layer img layer-two)
+
+ (plug-in-gradmap RUN-NONINTERACTIVE img layer-two)
+
+ (gimp-image-select-color img CHANNEL-OP-REPLACE layer-one '(190 190 190))
+ (plug-in-bump-map RUN-NONINTERACTIVE img layer-two layer-one 135.0 35 landheight 0 0 0 0 TRUE FALSE 0)
+
+ ;(plug-in-c-astretch RUN-NONINTERACTIVE img layer-two)
+ (gimp-selection-invert img)
+ (plug-in-bump-map RUN-NONINTERACTIVE img layer-two layer-one 135.0 35 seadepth 0 0 0 0 TRUE FALSE 0)
+
+ ;(plug-in-c-astretch RUN-NONINTERACTIVE img layer-two)
+
+ ; uncomment the next line if you want to keep a selection of the "land"
+ (gimp-selection-none img)
+
+ (gimp-display-new img)
+ (gimp-image-undo-enable img)
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-land"
+ _"_Land..."
+ _"Create an image filled with a topographic map pattern"
+ "Adrian Likins <aklikins eos ncsu edu>"
+ "Adrian Likins"
+ "1997"
+ ""
+ SF-ADJUSTMENT _"Image width" '(256 10 1000 1 10 0 1)
+ SF-ADJUSTMENT _"Image height" '(256 10 1000 1 10 0 1)
+ SF-ADJUSTMENT _"Random seed" '(32 0 15000000 1 10 0 1)
+ SF-ADJUSTMENT _"Detail level" '(4 1 15 1 5 0 0)
+ SF-ADJUSTMENT _"Land height" '(60 1 65 1 10 0 1)
+ SF-ADJUSTMENT _"Sea depth" '(4 1 65 1 10 0 1)
+ SF-ADJUSTMENT _"Scale X" '(4 0.1 16 1 5 0.1 0)
+ SF-ADJUSTMENT _"Scale Y" '(4 0.1 16 1 5 0.1 0)
+ SF-GRADIENT _"Gradient" "Land 1"
+)
+
+(script-fu-menu-register "script-fu-land"
+ "<Image>/File/Create/Patterns")
diff --git a/scripts/neon-logo.scm b/scripts/neon-logo.scm
new file mode 100644
index 0000000..58bdcec
--- /dev/null
+++ b/scripts/neon-logo.scm
@@ -0,0 +1,295 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+;
+; NEON
+; Create a text effect that simulates neon lighting
+
+(define (apply-neon-logo-effect img
+ tube-layer
+ size
+ bg-color
+ glow-color
+ shadow)
+
+ (define (set-pt a index x y)
+ (begin
+ (aset a (* index 2) x)
+ (aset a (+ (* index 2) 1) y)))
+
+ (define (neon-spline1)
+ (let* ((a (cons-array 6 'byte)))
+ (set-pt a 0 0 0)
+ (set-pt a 1 127 145)
+ (set-pt a 2 255 255)
+ a))
+
+ (define (neon-spline2)
+ (let* ((a (cons-array 6 'byte)))
+ (set-pt a 0 0 0)
+ (set-pt a 1 110 150)
+ (set-pt a 2 255 255)
+ a))
+
+ (define (neon-spline3)
+ (let* ((a (cons-array 6 'byte)))
+ (set-pt a 0 0 0)
+ (set-pt a 1 100 185)
+ (set-pt a 2 255 255)
+ a))
+
+ (define (neon-spline4)
+ (let* ((a (cons-array 8 'byte)))
+ (set-pt a 0 0 0)
+ (set-pt a 1 64 64)
+ (set-pt a 2 127 192)
+ (set-pt a 3 255 255)
+ a))
+
+ (define (find-hue-offset color)
+ (let* (
+ (R (car color))
+ (G (cadr color))
+ (B (caddr color))
+ (max-val (max R G B))
+ (min-val (min R G B))
+ (delta (- max-val min-val))
+ (hue 0)
+ )
+ (if (= delta 0)
+ 0
+ (begin
+ (cond
+ ((= max-val R)
+ (set! hue (/ (- G B) (* 1.0 delta))))
+ ((= max-val G)
+ (set! hue (+ 2 (/ (- B R) (* 1.0 delta)))))
+ ((= max-val B)
+ (set! hue (+ 4 (/ (- R G) (* 1.0 delta)))))
+ )
+ (set! hue (* hue 60))
+ (if (< hue 0) (set! hue (+ hue 360)))
+ (if (> hue 360) (set! hue (- hue 360)))
+ (if (> hue 180) (set! hue (- hue 360)))
+ hue
+ )
+ )
+ )
+ )
+
+ (let* (
+ (tube-hue (find-hue-offset glow-color))
+ (shrink (/ size 14))
+ (grow (/ size 40))
+ (feather (/ size 5))
+ (feather1 (/ size 25))
+ (feather2 (/ size 12))
+ (inc-shrink (/ size 100))
+ (shadow-shrink (/ size 40))
+ (shadow-feather (/ size 20))
+ (shadow-offx (/ size 10))
+ (shadow-offy (/ size 10))
+ (width (car (gimp-drawable-width tube-layer)))
+ (height (car (gimp-drawable-height tube-layer)))
+ (glow-layer (car (gimp-layer-new img width height RGBA-IMAGE
+ "Neon Glow" 100 NORMAL-MODE)))
+ (bg-layer (car (gimp-layer-new img width height RGB-IMAGE
+ "Background" 100 NORMAL-MODE)))
+ (shadow-layer (if (= shadow TRUE)
+ (car (gimp-layer-new img width height RGBA-IMAGE
+ "Shadow" 100 NORMAL-MODE))
+ 0))
+ (selection 0)
+ (max_shrink 0)
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ ; ensure that we don't shrink selection so much
+ ; that we create an empty selection.
+ (gimp-image-select-item img CHANNEL-OP-REPLACE tube-layer)
+ (while (= (car (gimp-selection-is-empty img)) FALSE)
+ (begin
+ (gimp-selection-shrink img 1)
+ (set! max_shrink (+ max_shrink 1))
+ ; escape early if we know that we can perform
+ ; as much shrink steps as we want
+ (if (> max_shrink shrink)
+ (gimp-selection-none img))
+ )
+ )
+ (if (= (car (gimp-selection-is-empty img)) TRUE)
+ (if (> max_shrink 0)
+ (set! max_shrink (- max_shrink 1))))
+ ; clamp upper bounds to valid shrink step range
+ (if (> shrink max_shrink)
+ (set! shrink max_shrink))
+ (if (> inc-shrink (/ max_shrink 3))
+ (set! inc-shrink (/ max_shrink 3)))
+ (if (> shadow-shrink max_shrink)
+ (set! shadow-shrink max_shrink))
+
+ (script-fu-util-image-resize-from-layer img tube-layer)
+ (script-fu-util-image-add-layers img glow-layer bg-layer)
+ (if (not (= shadow 0))
+ (begin
+ (gimp-image-insert-layer img shadow-layer 0 -1)
+ (gimp-edit-clear shadow-layer)))
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-image-select-item img CHANNEL-OP-REPLACE tube-layer)
+ (set! selection (car (gimp-selection-save img)))
+ (gimp-selection-none img)
+
+ (gimp-edit-clear glow-layer)
+ (gimp-edit-clear tube-layer)
+
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill tube-layer BACKGROUND-FILL)
+ (gimp-selection-shrink img shrink)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill selection BACKGROUND-FILL)
+ (gimp-edit-clear tube-layer)
+
+ (gimp-selection-none img)
+ (if (not (= feather1 0))
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img tube-layer feather1 TRUE TRUE))
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (if (not (= feather2 0))
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img tube-layer feather2 TRUE TRUE))
+
+ (gimp-selection-feather img inc-shrink)
+ (gimp-selection-shrink img inc-shrink)
+ (gimp-curves-spline tube-layer 4 6 (neon-spline1))
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (gimp-selection-feather img inc-shrink)
+ (gimp-selection-shrink img (* inc-shrink 2))
+ (gimp-curves-spline tube-layer 4 6 (neon-spline2))
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (gimp-selection-feather img inc-shrink)
+ (gimp-selection-shrink img (* inc-shrink 3))
+ (gimp-curves-spline tube-layer 4 6 (neon-spline3))
+
+ (gimp-layer-set-lock-alpha tube-layer 1)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE tube-layer)
+ (gimp-selection-invert img)
+ (gimp-context-set-background glow-color)
+ (gimp-edit-fill tube-layer BACKGROUND-FILL)
+
+ (gimp-selection-none img)
+ (gimp-layer-set-lock-alpha tube-layer 0)
+ (gimp-curves-spline tube-layer 4 8 (neon-spline4))
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (gimp-selection-grow img grow)
+ (gimp-selection-invert img)
+ (gimp-edit-clear tube-layer)
+ (gimp-selection-invert img)
+
+ (gimp-selection-feather img feather)
+ (gimp-edit-fill glow-layer BACKGROUND-FILL)
+
+ (if (not (= shadow 0))
+ (begin
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (gimp-selection-grow img grow)
+ (gimp-selection-shrink img shadow-shrink)
+ (gimp-selection-feather img shadow-feather)
+ (gimp-selection-translate img shadow-offx shadow-offy)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill shadow-layer BACKGROUND-FILL)))
+ (gimp-selection-none img)
+
+ (gimp-item-set-name tube-layer "Neon Tubes")
+ (gimp-image-remove-channel img selection)
+
+ (gimp-context-pop)
+ )
+)
+
+(define (script-fu-neon-logo-alpha img
+ tube-layer
+ size
+ bg-color
+ glow-color
+ shadow)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-neon-logo-effect img tube-layer (* size 5) bg-color glow-color shadow)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-neon-logo-alpha"
+ _"N_eon..."
+ _"Convert the selected region (or alpha) into a neon-sign like object"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1997"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT _"Effect size (pixels)" '(30 1 200 1 10 0 1)
+ SF-COLOR _"Background color" "black"
+ SF-COLOR _"Glow color" '(38 211 255)
+ SF-TOGGLE _"Create shadow" FALSE
+)
+
+(script-fu-menu-register "script-fu-neon-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+(define (script-fu-neon-logo text
+ size
+ font
+ bg-color
+ glow-color
+ shadow)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (border (/ size 4))
+ (tube-layer (car (gimp-text-fontname img -1 0 0 text border TRUE size PIXELS font)))
+ )
+ (gimp-image-undo-disable img)
+ (apply-neon-logo-effect img tube-layer size bg-color glow-color shadow)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-neon-logo"
+ _"N_eon..."
+ _"Create a logo in the style of a neon sign"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1997"
+ ""
+ SF-STRING _"Text" "NEON"
+ SF-ADJUSTMENT _"Font size (pixels)" '(150 2 1000 1 10 0 1)
+ SF-FONT _"Font" "Blippo"
+ SF-COLOR _"Background color" "black"
+ SF-COLOR _"Glow color" '(38 211 255)
+ SF-TOGGLE _"Create shadow" FALSE
+)
+
+(script-fu-menu-register "script-fu-neon-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/news-text.scm b/scripts/news-text.scm
new file mode 100644
index 0000000..b9c8f8f
--- /dev/null
+++ b/scripts/news-text.scm
@@ -0,0 +1,94 @@
+; Newsprint text
+; Copyright (c) 1998 Austin Donnelly <austin greenend org uk>
+;
+;
+; Based on alien glow code from Adrian Likins
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+(define (script-fu-newsprint-text string font font-size cell-size
+ density blur-radius text-color bg-color)
+ (let* (
+ (text-ext (gimp-text-get-extents-fontname string font-size PIXELS font))
+ (width (+ (car text-ext) 20 blur-radius))
+ (height (+ (list-ref text-ext 1) 20 blur-radius))
+ (img (car (gimp-image-new width height RGB)))
+ (bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
+ (text-layer (car (gimp-layer-new img width height RGBA-IMAGE "Text layer" 100 NORMAL-MODE)))
+ (text-mask 0)
+ (grey (/ (* density 255) 100))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-insert-layer img bg-layer 0 1)
+ (gimp-image-insert-layer img text-layer 0 -1)
+
+ (gimp-context-set-background bg-color)
+ (gimp-edit-clear bg-layer)
+ (gimp-edit-clear text-layer)
+
+ (gimp-context-set-foreground text-color)
+ (gimp-floating-sel-anchor
+ (car (gimp-text-fontname img text-layer
+ (/ (+ 20 blur-radius) 2) (/ (+ 20 blur-radius) 2)
+ string 0 TRUE font-size PIXELS font)))
+
+ (set! text-mask (car (gimp-layer-create-mask text-layer ADD-ALPHA-MASK)))
+ (gimp-layer-add-mask text-layer text-mask)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE text-layer)
+ (gimp-context-set-background (list grey grey grey))
+ (gimp-edit-fill text-mask BACKGROUND-FILL)
+ (gimp-selection-none img)
+ (if (> blur-radius 0)
+ (plug-in-gauss-iir RUN-NONINTERACTIVE img text-mask blur-radius 1 1)
+ )
+
+ (plug-in-newsprint RUN-NONINTERACTIVE img text-mask cell-size
+ 0 0 45.0 3 45.0 0 45.0 0 45.0 0 3)
+
+ (gimp-edit-fill text-layer FOREGROUND-FILL)
+ (gimp-layer-remove-mask text-layer MASK-APPLY)
+
+ (gimp-image-undo-enable img)
+
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-newsprint-text"
+ _"Newsprint Te_xt..."
+ _"Create a logo in the style of newspaper printing"
+ "Austin Donnelly"
+ "Austin Donnelly"
+ "1998"
+ ""
+ SF-STRING _"Text" "Newsprint"
+ SF-FONT _"Font" "Sans"
+ SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
+ SF-ADJUSTMENT _"Cell size (pixels)" '(7 1 100 1 10 0 1)
+ SF-ADJUSTMENT _"Density (%)" '(60 0 100 1 10 0 0)
+ SF-ADJUSTMENT _"Blur radius" '(0 0 100 1 5 0 0)
+ SF-COLOR _"Text color" "black"
+ SF-COLOR _"Background color" "white"
+)
+
+(script-fu-menu-register "script-fu-newsprint-text"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/pupi-button.scm b/scripts/pupi-button.scm
new file mode 100644
index 0000000..f8cafb6
--- /dev/null
+++ b/scripts/pupi-button.scm
@@ -0,0 +1,212 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Round Button --- create a round beveled Web button.
+; Copyright (C) 1998 Federico Mena Quintero & Arturo Espinosa Aldama
+; federico nuclecu unam mx arturo nuclecu unam mx
+; ************************************************************************
+; Changed on Feb 4, 1999 by Piet van Oostrum <piet cs uu nl>
+; For use with GIMP 1.1.
+; All calls to gimp-text-* have been converted to use the *-fontname form.
+; The corresponding parameters have been replaced by an SF-FONT parameter.
+; ************************************************************************
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+(define (script-fu-round-button text
+ size
+ font
+ ul-color
+ lr-color
+ text-color
+ ul-color-high
+ lr-color-high
+ hlight-color
+ xpadding
+ ypadding
+ bevel
+ ratio
+ notpressed
+ notpressed-active
+ pressed)
+
+ (cond ((eqv? notpressed TRUE)
+ (do-pupibutton text size font ul-color lr-color
+ text-color xpadding ypadding bevel ratio 0)))
+ (cond ((eqv? notpressed-active TRUE)
+ (do-pupibutton text size font ul-color-high lr-color-high
+ hlight-color xpadding ypadding bevel ratio 0)))
+ (cond ((eqv? pressed TRUE)
+ (do-pupibutton text size font ul-color-high lr-color-high
+ hlight-color xpadding ypadding bevel ratio 1))))
+
+(define (do-pupibutton text
+ size
+ font
+ ul-color
+ lr-color
+ text-color
+ xpadding
+ ypadding
+ bevel
+ ratio
+ pressed)
+
+ (define (text-width extents)
+ (car extents))
+
+ (define (text-height extents)
+ (cadr extents))
+
+ (define (text-ascent extents)
+ (caddr extents))
+
+ (define (text-descent extents)
+ (cadr (cddr extents)))
+
+ (define (round-select img
+ x
+ y
+ width
+ height
+ ratio)
+ (let* ((diameter (* ratio height)))
+ (gimp-image-select-ellipse img CHANNEL-OP-ADD x y diameter height)
+ (gimp-image-select-ellipse img CHANNEL-OP-ADD (+ x (- width diameter)) y
+ diameter height)
+ (gimp-image-select-rectangle img CHANNEL-OP-ADD (+ x (/ diameter 2)) y
+ (- width diameter) height)))
+
+ (let* (
+ (text-extents (gimp-text-get-extents-fontname text
+ size
+ PIXELS
+ font))
+ (ascent (text-ascent text-extents))
+ (descent (text-descent text-extents))
+
+ (height (+ (* 2 (+ ypadding bevel))
+ (+ ascent descent)))
+
+ (radius (/ (* ratio height) 4))
+
+ (width (+ (* 2 (+ radius xpadding))
+ bevel
+ (text-width text-extents)))
+
+ (img (car (gimp-image-new width height RGB)))
+
+ (bumpmap (car (gimp-layer-new img width height
+ RGBA-IMAGE "Bumpmap" 100 NORMAL-MODE)))
+ (gradient (car (gimp-layer-new img width height
+ RGBA-IMAGE "Button" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-antialias FALSE)
+ (gimp-context-set-feather FALSE)
+ (gimp-image-undo-disable img)
+
+ ; Create bumpmap layer
+
+ (gimp-image-insert-layer img bumpmap 0 -1)
+ (gimp-selection-none img)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (round-select img (/ bevel 2) (/ bevel 2)
+ (- width bevel) (- height bevel) ratio)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill bumpmap BACKGROUND-FILL)
+
+ (gimp-selection-none img)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img bumpmap bevel 1 1)
+
+ ; Create gradient layer
+
+ (gimp-image-insert-layer img gradient 0 -1)
+ (gimp-edit-clear gradient)
+ (round-select img 0 0 width height ratio)
+ (gimp-context-set-foreground ul-color)
+ (gimp-context-set-background lr-color)
+
+ (gimp-edit-blend gradient FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ 0 0 0 (- height 1))
+
+ (gimp-selection-none img)
+
+ (plug-in-bump-map RUN-NONINTERACTIVE img gradient bumpmap
+ 135 45 bevel 0 0 0 0 TRUE pressed 0)
+
+; Create text layer
+
+ (cond ((eqv? pressed 1) (set! bevel (+ bevel 1))))
+
+ (gimp-context-set-foreground text-color)
+ (let ((textl (car (gimp-text-fontname
+ img -1 0 0 text 0 TRUE size PIXELS
+ font))))
+ (gimp-layer-set-offsets textl
+ (+ xpadding radius bevel)
+ (+ ypadding descent bevel)))
+
+; Delete some fucked-up pixels.
+
+ (gimp-selection-none img)
+ (round-select img 1 1 (- width 1) (- height 1) ratio)
+ (gimp-selection-invert img)
+ (gimp-edit-clear gradient)
+
+; Done
+
+ (gimp-image-remove-layer img bumpmap)
+ (gimp-image-merge-visible-layers img EXPAND-AS-NECESSARY)
+
+ (gimp-selection-none img)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-round-button"
+ _"_Round Button..."
+ _"Create images, each containing an oval button graphic"
+ "Arturo Espinosa (stolen from quartic's beveled button)"
+ "Arturo Espinosa & Federico Mena Quintero"
+ "June 1998"
+ ""
+ SF-STRING _"Text" "GIMP"
+ SF-ADJUSTMENT _"Font size (pixels)" '(16 2 100 1 1 0 1)
+ SF-FONT _"Font" "Sans"
+ SF-COLOR _"Upper color" '(192 192 0)
+ SF-COLOR _"Lower color" '(128 108 0)
+ SF-COLOR _"Text color" "black"
+ SF-COLOR _"Upper color (active)" '(255 255 0)
+ SF-COLOR _"Lower color (active)" '(128 108 0)
+ SF-COLOR _"Text color (active)" '(0 0 192)
+ SF-ADJUSTMENT _"Padding X" '(4 0 100 1 10 0 1)
+ SF-ADJUSTMENT _"Padding Y" '(4 0 100 1 10 0 1)
+ SF-ADJUSTMENT _"Bevel width" '(2 0 100 1 10 0 1)
+ SF-ADJUSTMENT _"Round ratio" '(1 0.05 20 0.05 1 2 1)
+ SF-TOGGLE _"Not pressed" TRUE
+ SF-TOGGLE _"Not pressed (active)" TRUE
+ SF-TOGGLE _"Pressed" TRUE
+)
+
+(script-fu-menu-register "script-fu-round-button"
+ "<Image>/File/Create/Buttons")
diff --git a/scripts/rendermap.scm b/scripts/rendermap.scm
new file mode 100644
index 0000000..3cfbd21
--- /dev/null
+++ b/scripts/rendermap.scm
@@ -0,0 +1,94 @@
+; Chris Gutteridge (cjg ecs soton ac uk)
+; At ECS Dept, University of Southampton, England.
+
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+(define (script-fu-render-map inSize
+ inGrain
+ inGrad
+ inWiden)
+
+ (let* (
+ (theWidth inSize)
+ (theHeight inSize)
+ (theImage (car(gimp-image-new theWidth theHeight RGB)))
+ (theLayer 0)
+ (thinLayer 0)
+ )
+
+ (gimp-context-push)
+
+ (gimp-selection-all theImage)
+
+ (set! theLayer (car (gimp-layer-new theImage theWidth theHeight
+ RGBA-IMAGE
+ "I've got more rubber ducks than you!"
+ 100 NORMAL-MODE)))
+ (gimp-image-insert-layer theImage theLayer 0 0)
+ (plug-in-solid-noise RUN-NONINTERACTIVE
+ theImage theLayer 1 0 (rand 65536)
+ inGrain inGrain inGrain)
+
+ (if (= inWiden 1)
+ (begin
+ (set! thinLayer (car (gimp-layer-new theImage theWidth theHeight
+ RGBA-IMAGE "Camo Thin Layer"
+ 100 NORMAL-MODE)))
+ (gimp-image-insert-layer theImage thinLayer 0 0)
+
+ (let ((theBigGrain (min 15 (* 2 inGrain))))
+ (plug-in-solid-noise RUN-NONINTERACTIVE
+ theImage thinLayer 1 0 (rand 65536)
+ theBigGrain theBigGrain theBigGrain))
+
+ (gimp-context-set-background '(255 255 255))
+ (gimp-context-set-foreground '(0 0 0))
+
+ (let ((theMask (car (gimp-layer-create-mask thinLayer 0))))
+ (gimp-layer-add-mask thinLayer theMask)
+
+ (gimp-edit-blend theMask FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-TRIANGULAR FALSE
+ FALSE 0 0 TRUE
+ 0 0 0 (/ theHeight 2)))
+
+ (set! theLayer (car(gimp-image-flatten theImage)))))
+
+ (gimp-selection-none theImage)
+ (gimp-context-set-gradient inGrad)
+ (plug-in-gradmap RUN-NONINTERACTIVE theImage theLayer)
+
+ (gimp-display-new theImage)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-render-map"
+ _"Render _Map..."
+ _"Create an image filled with an Earth-like map pattern"
+ "Chris Gutteridge: cjg ecs soton ac uk"
+ "28th April 1998"
+ "Chris Gutteridge / ECS @ University of Southampton, England"
+ ""
+ SF-ADJUSTMENT _"Image size" '(256 0 2048 1 10 0 0)
+ SF-ADJUSTMENT _"Granularity" '(4 0 15 1 1 0 0)
+ SF-GRADIENT _"Gradient" "Land and Sea"
+ SF-TOGGLE _"Gradient reverse" FALSE
+ SF-OPTION _"Behavior" '(_"Tile" _"Detail in Middle")
+)
+
+(script-fu-menu-register "script-fu-render-map"
+ "<Image>/File/Create/Patterns")
diff --git a/scripts/sota-chrome-logo.scm b/scripts/sota-chrome-logo.scm
new file mode 100644
index 0000000..5cd760b
--- /dev/null
+++ b/scripts/sota-chrome-logo.scm
@@ -0,0 +1,224 @@
+; CHROME-LOGO2
+; State of the art chrome logos
+;
+
+(define (script-fu-sota-chrome-logo chrome-saturation chrome-lightness
+ chrome-factor text size fontname
+ env-map hc cc)
+
+ (define (set-pt a index x y)
+ (begin
+ (aset a (* index 2) x)
+ (aset a (+ (* index 2) 1) y)
+ )
+ )
+
+ (define (spline1)
+ (let* ((a (cons-array 18 'byte)))
+ (set-pt a 0 0 0)
+ (set-pt a 1 31 235)
+ (set-pt a 2 63 23)
+ (set-pt a 3 95 230)
+ (set-pt a 4 127 25)
+ (set-pt a 5 159 210)
+ (set-pt a 6 191 20)
+ (set-pt a 7 223 240)
+ (set-pt a 8 255 31)
+ a
+ )
+ )
+
+ (define (brush brush-size)
+ (cond ((<= brush-size 5) "Circle Fuzzy (05)")
+ ((<= brush-size 7) "Circle Fuzzy (07)")
+ ((<= brush-size 9) "Circle Fuzzy (09)")
+ ((<= brush-size 11) "Circle Fuzzy (11)")
+ ((<= brush-size 13) "Circle Fuzzy (13)")
+ ((<= brush-size 15) "Circle Fuzzy (15)")
+ ((<= brush-size 17) "Circle Fuzzy (17)")
+ (else "Circle Fuzzy (19)")
+ )
+ )
+
+ (define (shadows val)
+ (/ (* 0.96 val) 2.55)
+ )
+
+ (define (midtones val)
+ (/ val 2.55)
+ )
+
+ (define (highlights val)
+ (let ((h (/ (* 1.108 val) 2.55)))
+ (if (> h 100) 100 h)
+ )
+ )
+
+ (define (rval col)
+ (car col)
+ )
+
+ (define (gval col)
+ (cadr col)
+ )
+
+ (define (bval col)
+ (caddr col)
+ )
+
+ (define (sota-scale val scale chrome-factor)
+ (* (sqrt val) (* scale chrome-factor))
+ )
+
+ (define (copy-layer-sota dest-image dest-drawable source-image source-drawable)
+ (gimp-selection-all dest-image)
+ (gimp-edit-clear dest-drawable)
+ (gimp-selection-none dest-image)
+ (gimp-selection-all source-image)
+ (gimp-edit-copy source-drawable)
+ (let ((floating-sel (car (gimp-edit-paste dest-drawable FALSE))))
+ (gimp-floating-sel-anchor floating-sel)
+ )
+ )
+
+ (let* (
+ (img (car (gimp-image-new 256 256 GRAY)))
+ (banding-img (car (gimp-file-load 1 env-map env-map)))
+ (banding-layer (car (gimp-image-get-active-drawable banding-img)))
+ (banding-height (car (gimp-drawable-height banding-layer)))
+ (banding-width (car (gimp-drawable-width banding-layer)))
+ (banding-type (car (gimp-drawable-type banding-layer)))
+ (b-size (sota-scale size 2 chrome-factor))
+ (offx1 (sota-scale size 0.33 chrome-factor))
+ (offy1 (sota-scale size 0.25 chrome-factor))
+ (offx2 (sota-scale size (- 0.33) chrome-factor))
+ (offy2 (sota-scale size (- 0.25) chrome-factor))
+ (feather (sota-scale size 0.5 chrome-factor))
+ (brush-size (sota-scale size 0.5 chrome-factor))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text (* b-size 2) TRUE size PIXELS fontname)))
+ (width (car (gimp-drawable-width text-layer)))
+ (height (car (gimp-drawable-height text-layer)))
+ (layer1 (car (gimp-layer-new img banding-width banding-height banding-type "Layer1" 100
NORMAL-MODE)))
+ (layer2 (car (gimp-layer-new img width height GRAYA-IMAGE "Layer 2" 100 DIFFERENCE-MODE)))
+ (layer3 (car (gimp-layer-new img width height GRAYA-IMAGE "Layer 3" 100 NORMAL-MODE)))
+ (shadow (car (gimp-layer-new img width height GRAYA-IMAGE "Drop Shadow" 100 NORMAL-MODE)))
+ (layer-mask 0)
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-resize img width height 0 0)
+ (gimp-image-insert-layer img shadow 0 0)
+ (gimp-image-insert-layer img layer3 0 0)
+ (gimp-image-insert-layer img layer2 0 0)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-selection-none img)
+ (gimp-edit-fill layer2 BACKGROUND-FILL)
+ (gimp-edit-fill layer3 BACKGROUND-FILL)
+ (gimp-edit-clear shadow)
+ (gimp-item-set-visible text-layer FALSE)
+ (gimp-item-set-visible shadow FALSE)
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE (/ b-size 2) (/ b-size 2) (- width b-size) (- height
b-size))
+ (gimp-image-select-rectangle img CHANNEL-OP-SUBTRACT b-size b-size (- width (* b-size 2)) (- height (*
b-size 2)))
+ (gimp-edit-fill text-layer BACKGROUND-FILL)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE text-layer)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-selection-translate img offx1 offy1)
+ (gimp-selection-feather img feather)
+ (gimp-edit-fill layer2 BACKGROUND-FILL)
+ (gimp-selection-translate img (* 2 offx2) (* 2 offy2))
+ (gimp-edit-fill layer3 BACKGROUND-FILL)
+ (gimp-selection-none img)
+ (gimp-item-set-visible layer2 TRUE)
+ (gimp-item-set-visible layer3 TRUE)
+ (set! layer2 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
+ (gimp-invert layer2)
+
+ (gimp-image-insert-layer img layer1 0 0)
+ (copy-layer-sota img layer1 banding-img banding-layer)
+ (gimp-image-delete banding-img)
+ (gimp-layer-scale layer1 width height FALSE)
+ (plug-in-gauss-iir RUN-NONINTERACTIVE img layer1 10 TRUE TRUE)
+ (gimp-layer-set-opacity layer1 50)
+ (gimp-item-set-visible layer1 TRUE)
+ (gimp-item-set-visible layer2 TRUE)
+ (set! layer1 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
+ (gimp-curves-spline layer1 0 18 (spline1))
+
+ (set! layer-mask (car (gimp-layer-create-mask layer1 ADD-BLACK-MASK)))
+ (gimp-layer-add-mask layer1 layer-mask)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE text-layer)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill layer-mask BACKGROUND-FILL)
+
+ (set! layer2 (car (gimp-layer-copy layer1 TRUE)))
+ (gimp-image-insert-layer img layer2 0 0)
+ (gimp-context-set-brush (brush brush-size))
+ (gimp-context-set-foreground '(255 255 255))
+ (gimp-edit-stroke layer-mask)
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-selection-feather img (* feather 1.5))
+ (gimp-selection-translate img (* 2.5 offx1) (* 2.5 offy1))
+ (gimp-edit-fill shadow BACKGROUND-FILL)
+
+ (gimp-selection-all img)
+ (gimp-context-set-pattern "Marble #1")
+ (gimp-edit-bucket-fill text-layer PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
+ (gimp-selection-none img)
+
+ (gimp-image-convert-rgb img)
+
+ (gimp-color-balance layer1 0 TRUE (shadows (rval hc)) (shadows (gval hc)) (shadows (bval hc)))
+ (gimp-color-balance layer1 1 TRUE (midtones (rval hc)) (midtones (gval hc)) (midtones (bval hc)))
+ (gimp-color-balance layer1 2 TRUE (highlights (rval hc)) (highlights (gval hc)) (highlights (bval hc)))
+
+ (gimp-color-balance layer2 0 TRUE (shadows (rval cc)) (shadows (gval cc)) (shadows (bval cc)))
+ (gimp-color-balance layer2 1 TRUE (midtones (rval cc)) (midtones (gval cc)) (midtones (bval cc)))
+ (gimp-color-balance layer2 2 TRUE (highlights (rval cc)) (highlights (gval cc)) (highlights (bval cc)))
+ (gimp-hue-saturation layer2 0 0 chrome-lightness chrome-saturation)
+
+ (gimp-item-set-visible shadow TRUE)
+ (gimp-item-set-visible text-layer TRUE)
+
+ (gimp-item-set-name text-layer "Background")
+ (gimp-item-set-name layer2 "Chrome")
+ (gimp-item-set-name layer1 "Highlight")
+
+ (gimp-layer-translate shadow (/ b-size -4) (/ b-size -4))
+ (gimp-layer-translate layer2 (/ b-size -4) (/ b-size -4))
+ (gimp-layer-translate layer1 (/ b-size -4) (/ b-size -4))
+
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-sota-chrome-logo"
+ _"SOTA Chrome..."
+ _"Create a State Of The Art chromed logo"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1997"
+ ""
+ SF-ADJUSTMENT _"Chrome saturation" '(-80 -100 100 1 10 0 0)
+ SF-ADJUSTMENT _"Chrome lightness" '(-47 -100 100 1 10 0 0)
+ SF-ADJUSTMENT _"Chrome factor" '(.75 0 1 0.1 0.01 2 0)
+ SF-STRING _"Text" "GIMP"
+ SF-ADJUSTMENT _"Font size (pixels)" '(150 2 1000 1 10 0 1)
+ SF-FONT _"Font" "RoostHeavy"
+ SF-FILENAME _"Environment map"
+ (string-append gimp-data-directory
+ "/scripts/images/beavis.jpg")
+ SF-COLOR _"Highlight balance" '(211 95 0)
+ SF-COLOR _"Chrome balance" "black"
+)
+
+(script-fu-menu-register "script-fu-sota-chrome-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/speed-text.scm b/scripts/speed-text.scm
new file mode 100644
index 0000000..b95504b
--- /dev/null
+++ b/scripts/speed-text.scm
@@ -0,0 +1,101 @@
+; Speed text
+; Copyright (c) 1998 Austin Donnelly <austin greenend org uk>
+;
+;
+; Based on alien glow code from Adrian Likins
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+(define (script-fu-speed-text string font font-size density text-color bg-color)
+ (let* (
+ (text-ext (gimp-text-get-extents-fontname string font-size PIXELS font))
+ (wid (+ (car text-ext) 20))
+ (hi (+ (list-ref text-ext 1) 20))
+ (img (car (gimp-image-new wid hi RGB)))
+ (bg-layer (car (gimp-layer-new img wid hi RGB-IMAGE "Background" 100 NORMAL-MODE)))
+ (text-layer (car (gimp-layer-new img wid hi RGBA-IMAGE "Text layer" 100 NORMAL-MODE)))
+ (text-mask 0)
+ (saved-select 0)
+ (cell-size (/ font-size 8))
+ (grey (/ (* density 255) 100))
+ (saved-sel 0)
+ (text-mask 0)
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-insert-layer img bg-layer 0 1)
+ (gimp-image-insert-layer img text-layer 0 -1)
+
+ (gimp-context-set-background bg-color)
+ (gimp-edit-clear bg-layer)
+ (gimp-edit-clear text-layer)
+
+ (gimp-floating-sel-anchor (car (gimp-text-fontname img text-layer 10 10 string 0 TRUE font-size PIXELS
font)))
+
+ ; save the selection for later
+ (gimp-image-select-item img CHANNEL-OP-REPLACE text-layer)
+ (set! saved-sel (car (gimp-selection-save img)))
+
+ ; add layer mask
+ (set! text-mask (car (gimp-layer-create-mask text-layer ADD-ALPHA-MASK)))
+ (gimp-layer-add-mask text-layer text-mask)
+
+ ; grow the layer
+ (gimp-layer-set-edit-mask text-layer FALSE)
+ (gimp-selection-grow img 10)
+ (gimp-context-set-foreground text-color)
+ (gimp-edit-fill text-layer FOREGROUND-FILL)
+
+ ; feather the mask
+ (gimp-layer-set-edit-mask text-layer TRUE)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE saved-sel)
+ (gimp-selection-feather img 10)
+ (gimp-context-set-background (list grey grey grey))
+ (gimp-edit-fill text-mask BACKGROUND-FILL)
+ (gimp-edit-fill text-mask BACKGROUND-FILL)
+ (gimp-edit-fill text-mask BACKGROUND-FILL)
+ (gimp-selection-none img)
+
+ (plug-in-newsprint RUN-NONINTERACTIVE img text-mask cell-size 0 0 0.0 1 45.0 0 45.0 0 45.0 0 5)
+
+ (gimp-layer-remove-mask text-layer MASK-APPLY)
+
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-speed-text"
+ _"Speed Text..."
+ _"Create a logo with a speedy text effect"
+ "Austin Donnelly"
+ "Austin Donnelly"
+ "1998"
+ ""
+ SF-STRING _"Text" "Speed!"
+ SF-FONT _"Font" "Charter"
+ SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
+ SF-ADJUSTMENT _"Density (%)" '(80 0 100 1 10 0 0)
+ SF-COLOR _"Text color" "black"
+ SF-COLOR _"Background color" "white"
+)
+
+(script-fu-menu-register "script-fu-speed-text"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/starscape-logo.scm b/scripts/starscape-logo.scm
new file mode 100644
index 0000000..1652153
--- /dev/null
+++ b/scripts/starscape-logo.scm
@@ -0,0 +1,152 @@
+; Nova Starscape
+; Create a text effect that simulates an eerie alien glow around text
+
+(define (apply-starscape-logo-effect img logo-layer size glow-color)
+
+ (define (find-blend-coords w h)
+ (let* (
+ (denom (+ (/ w h) (/ h w)))
+ (bx (/ (* -2 h) denom))
+ (by (/ (* -2 w) denom))
+ )
+ (cons bx by)
+ )
+ )
+
+ (define (find-nova-x-coord drawable x1 x2 y)
+ (let* (
+ (x 0)
+ (alpha 3)
+ (range (- x2 x1))
+ (min-clearance 5)
+ (val '())
+ (val-left '())
+ (val-right '())
+ (val-top '())
+ (val-bottom '())
+ (limit 100)
+ (clearance 0)
+ )
+
+ (while (and (= clearance 0) (> limit 0))
+ (set! x (+ (rand range) x1))
+ (set! val (cadr (gimp-drawable-get-pixel drawable x y)))
+ (set! val-left (cadr (gimp-drawable-get-pixel drawable (- x min-clearance) y)))
+ (set! val-right (cadr (gimp-drawable-get-pixel drawable (+ x min-clearance) y)))
+ (set! val-top (cadr (gimp-drawable-get-pixel drawable x (- y min-clearance))))
+ (set! val-bottom (cadr (gimp-drawable-get-pixel drawable x (+ y min-clearance))))
+ (if (and (= (aref val alpha) 0) (= (aref val-left alpha) 0)
+ (= (aref val-right alpha) 0) (= (aref val-top alpha) 0)
+ (= (aref val-bottom alpha) 0)
+ )
+ (set! clearance 1)
+ (set! limit (- limit 1))
+ )
+ )
+ x
+ )
+ )
+
+ (let* (
+ (border (/ size 4))
+ (grow (/ size 30))
+ (offx (* size 0.03))
+ (offy (* size 0.02))
+ (feather (/ size 4))
+ (shadow-feather (/ size 25))
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (w (* (/ (- width (* border 2)) 2.0) 0.75))
+ (h (* (/ (- height (* border 2)) 2.0) 0.75))
+ (novay (* height 0.3))
+ (novax (find-nova-x-coord logo-layer (* width 0.2) (* width 0.8) novay))
+ (novaradius (/ (min height width) 7.0))
+ (cx (/ width 2.0))
+ (cy (/ height 2.0))
+ (bx (+ cx (car (find-blend-coords w h))))
+ (by (+ cy (cdr (find-blend-coords w h))))
+ (bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
+ (glow-layer (car (gimp-layer-new img width height RGBA-IMAGE "Glow" 100 NORMAL-MODE)))
+ (shadow-layer (car (gimp-layer-new img width height RGBA-IMAGE "Drop Shadow" 100 NORMAL-MODE)))
+ (bump-channel (car (gimp-channel-new img width height "Bump Map" 50 '(0 0 0))))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-selection-none img)
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img shadow-layer glow-layer bg-layer)
+ (gimp-image-insert-channel img bump-channel 0 0)
+ (gimp-layer-set-lock-alpha logo-layer TRUE)
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+ (gimp-edit-clear shadow-layer)
+ (gimp-edit-clear glow-layer)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-selection-grow img grow)
+ (gimp-selection-feather img feather)
+ (gimp-context-set-background glow-color)
+ (gimp-selection-feather img feather)
+ (gimp-edit-fill glow-layer BACKGROUND-FILL)
+
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-selection-feather img shadow-feather)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-selection-translate img offx offy)
+ (gimp-edit-fill shadow-layer BACKGROUND-FILL)
+
+ (gimp-selection-none img)
+ (gimp-context-set-background '(31 31 31))
+ (gimp-context-set-foreground '(255 255 255))
+
+ (gimp-edit-blend logo-layer FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-BILINEAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ cx cy bx by)
+
+ (plug-in-nova RUN-NONINTERACTIVE img glow-layer novax novay glow-color novaradius 100 0)
+
+ (gimp-selection-all img)
+ (gimp-context-set-pattern "Stone")
+ (gimp-edit-bucket-fill bump-channel PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
+ (plug-in-bump-map RUN-NONINTERACTIVE img logo-layer bump-channel
+ 135.0 45.0 4 0 0 0 0 FALSE FALSE 0)
+ (gimp-image-remove-channel img bump-channel)
+ (gimp-selection-none img)
+
+ (gimp-context-pop)
+ )
+)
+
+(define (script-fu-starscape-logo text size fontname glow-color)
+ (let* (
+ (img (car (gimp-image-new 256 256 RGB)))
+ (border (/ size 4))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text border
+ TRUE size PIXELS fontname)))
+ )
+ (gimp-image-undo-disable img)
+ (apply-starscape-logo-effect img text-layer size glow-color)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-starscape-logo"
+ _"Sta_rscape..."
+ _"Create a logo using a rock-like texture, a nova glow, and shadow"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1997"
+ ""
+ SF-STRING _"Text" "Nova"
+ SF-ADJUSTMENT _"Font size (pixels)" '(150 1 1000 1 10 0 1)
+ SF-FONT _"Font" "Engraver"
+ SF-COLOR _"Glow color" '(28 65 188)
+)
+
+(script-fu-menu-register "script-fu-starscape-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/swirltile.scm b/scripts/swirltile.scm
new file mode 100644
index 0000000..d3475f3
--- /dev/null
+++ b/scripts/swirltile.scm
@@ -0,0 +1,69 @@
+;
+; Swirl-tile
+; produces a (hope-fully) seamlessly tiling swirling effect
+;
+; Adrian Likins <aklikins eos ncsu edu>
+;
+; http://www4.ncsu.edu/eos/users/a/aklikins/pub/gimp/
+;
+
+
+(define (script-fu-swirl-tile depth azimuth elevation blurRadius height width whirl-amount noise-level
bg-color)
+ (let* (
+ (img (car (gimp-image-new width height RGB)))
+ (layer-one (car (gimp-layer-new img width height
+ RGB-IMAGE "TEST" 100 NORMAL-MODE)))
+ (cx (/ width 2))
+ (cy (/ height 2))
+ )
+
+ (gimp-context-push)
+
+ (gimp-image-undo-disable img)
+
+ (gimp-image-insert-layer img layer-one 0 0)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill layer-one BACKGROUND-FILL)
+ (plug-in-noisify RUN-NONINTERACTIVE img layer-one FALSE noise-level noise-level noise-level 1.0)
+
+ (plug-in-whirl-pinch RUN-NONINTERACTIVE img layer-one whirl-amount 0.0 1.0)
+ (plug-in-whirl-pinch RUN-NONINTERACTIVE img layer-one whirl-amount 0.0 1.0)
+ (plug-in-whirl-pinch RUN-NONINTERACTIVE img layer-one whirl-amount 0.0 1.0)
+
+ (gimp-drawable-offset layer-one TRUE 0 cx cy)
+
+ (plug-in-whirl-pinch RUN-NONINTERACTIVE img layer-one whirl-amount 0.0 1.0)
+ (plug-in-whirl-pinch RUN-NONINTERACTIVE img layer-one whirl-amount 0.0 1.0)
+ (plug-in-whirl-pinch RUN-NONINTERACTIVE img layer-one whirl-amount 0.0 1.0)
+
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img layer-one blurRadius TRUE TRUE)
+
+ (plug-in-bump-map RUN-NONINTERACTIVE img layer-one layer-one azimuth elevation depth 0 0 0 0 FALSE FALSE
0)
+
+ (gimp-display-new img)
+ (gimp-image-undo-enable img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-swirl-tile"
+ _"Swirl-_Tile..."
+ _"Create an image filled with a swirled tile effect"
+ "Adrian Likins <aklikins eos ncsu edu>"
+ "Adrian Likins"
+ "1997"
+ ""
+ SF-ADJUSTMENT _"Depth" '(10 1 64 1 1 0 0)
+ SF-ADJUSTMENT _"Azimuth" '(135 0 360 1 10 0 0)
+ SF-ADJUSTMENT _"Elevation" '(45 0 90 1 10 0 0)
+ SF-ADJUSTMENT _"Blur radius" '(3 0 128 1 10 0 0)
+ SF-ADJUSTMENT _"Height" '(256 0 1024 1 10 0 1)
+ SF-ADJUSTMENT _"Width" '(256 0 1024 1 10 0 1)
+ SF-ADJUSTMENT _"Whirl amount" '(320 0 360 1 10 0 0)
+ SF-ADJUSTMENT _"Roughness" '(0.5 0 1 0.1 0.01 2 1)
+ SF-COLOR _"Background color" "white"
+)
+
+(script-fu-menu-register "script-fu-swirl-tile"
+ "<Image>/File/Create/Patterns")
diff --git a/scripts/swirly-pattern.scm b/scripts/swirly-pattern.scm
new file mode 100644
index 0000000..2ee0550
--- /dev/null
+++ b/scripts/swirly-pattern.scm
@@ -0,0 +1,94 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Pattern00 --- create a swirly tileable pattern
+; Copyright (C) 1997 Federico Mena Quintero
+; federico nuclecu unam mx
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+(define (script-fu-swirly-pattern qsize angle times)
+ (define (whirl-it img drawable angle times)
+ (if (> times 0)
+ (begin
+ (plug-in-whirl-pinch RUN-NONINTERACTIVE img drawable angle 0.0 1.0)
+ (whirl-it img drawable angle (- times 1)))))
+
+ (let* ((hsize (* qsize 2))
+ (img-size (* qsize 4))
+ (img (car (gimp-image-new img-size img-size RGB)))
+ (drawable (car (gimp-layer-new img img-size img-size
+ RGB-IMAGE "Swirly pattern"
+ 100 NORMAL-MODE))))
+
+ (gimp-context-push)
+ (gimp-context-set-feather FALSE)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-insert-layer img drawable 0 0)
+
+ ; Render checkerboard
+
+ (gimp-context-set-foreground '(0 0 0))
+ (gimp-context-set-background '(255 255 255))
+
+ (plug-in-checkerboard RUN-NONINTERACTIVE img drawable 0 qsize)
+
+ ; Whirl upper left
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 0 0 hsize hsize)
+ (whirl-it img drawable angle times)
+ (gimp-invert drawable)
+
+ ; Whirl upper right
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE hsize 0 hsize hsize)
+ (whirl-it img drawable (- angle) times)
+
+ ; Whirl lower left
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE 0 hsize hsize hsize)
+ (whirl-it img drawable (- angle) times)
+
+ ; Whirl lower right
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE hsize hsize hsize hsize)
+ (whirl-it img drawable angle times)
+ (gimp-invert drawable)
+
+ ; Terminate
+
+ (gimp-selection-none img)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-swirly-pattern"
+ _"_Swirly..."
+ _"Create an image filled with a swirly pattern"
+ "Federico Mena Quintero"
+ "Federico Mena Quintero"
+ "June 1997"
+ ""
+ SF-ADJUSTMENT _"Quarter size" '(20 0 2048 1 10 0 1)
+ SF-ADJUSTMENT _"Whirl angle" '(90 0 360 1 1 0 0)
+ SF-ADJUSTMENT _"Number of times to whirl" '(4 0 128 1 1 0 1)
+)
+
+(script-fu-menu-register "script-fu-swirly-pattern"
+ "<Image>/File/Create/Patterns")
diff --git a/scripts/t-o-p-logo.scm b/scripts/t-o-p-logo.scm
new file mode 100644
index 0000000..058b028
--- /dev/null
+++ b/scripts/t-o-p-logo.scm
@@ -0,0 +1,155 @@
+;; Trace of Particles Effect
+;; Shuji Narazaki (narazaki InetQ or jp)
+;; Time-stamp: <97/03/15 17:27:33 narazaki InetQ or jp>
+;; Version 0.2
+
+(define (apply-t-o-p-logo-effect img
+ logo-layer
+ b-size
+ hit-rate
+ edge-size
+ edge-only
+ base-color
+ bg-color)
+ (let* (
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (logo-layer-mask (car (gimp-layer-create-mask logo-layer ADD-BLACK-MASK)))
+ (sparkle-layer (car (gimp-layer-new img width height RGBA-IMAGE "Sparkle" 100 NORMAL-MODE)))
+ (shadow-layer (car (gimp-layer-new img width height RGBA-IMAGE "Shadow" 90 ADDITION-MODE)))
+ (bg-layer (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
+ (selection 0)
+ (white '(255 255 255))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img sparkle-layer shadow-layer bg-layer)
+ (gimp-selection-none img)
+ (gimp-edit-clear shadow-layer)
+ (gimp-edit-clear sparkle-layer)
+ (gimp-context-set-background base-color)
+ (gimp-edit-fill sparkle-layer BACKGROUND-FILL)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (set! selection (car (gimp-selection-save img)))
+ (gimp-selection-grow img edge-size)
+ (plug-in-noisify RUN-NONINTERACTIVE img sparkle-layer FALSE
+ (* 0.1 hit-rate) (* 0.1 hit-rate) (* 0.1 hit-rate) 0.0)
+ (gimp-selection-border img edge-size)
+ (plug-in-noisify RUN-NONINTERACTIVE img sparkle-layer FALSE hit-rate hit-rate hit-rate 0.0)
+ (gimp-selection-none img)
+ (plug-in-sparkle RUN-NONINTERACTIVE img sparkle-layer 0.03 0.49 width 6 15 1.0 0.0 0.0 0.0 FALSE FALSE
FALSE 0)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (gimp-selection-shrink img edge-size)
+ (gimp-levels sparkle-layer 0 0 255 1.2 0 255)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (gimp-selection-border img edge-size)
+ (gimp-levels sparkle-layer 0 0 255 0.5 0 255)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (gimp-selection-grow img (/ edge-size 2.0))
+ (gimp-selection-invert img)
+ (gimp-edit-clear sparkle-layer)
+ (if (= edge-only TRUE)
+ (begin
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (gimp-selection-shrink img (/ edge-size 2.0))
+ (gimp-edit-clear sparkle-layer)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE selection)
+ (gimp-selection-grow img (/ edge-size 2.0))
+ (gimp-selection-invert img)))
+ (gimp-context-set-foreground '(0 0 0))
+ (gimp-context-set-background '(255 255 255))
+ (gimp-context-set-brush "Circle Fuzzy (11)")
+ (gimp-selection-feather img b-size)
+ (gimp-edit-fill shadow-layer BACKGROUND-FILL)
+
+ (gimp-selection-none img)
+ (gimp-context-set-background bg-color)
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+
+ (gimp-item-set-visible logo-layer 0)
+ (gimp-image-set-active-layer img sparkle-layer)
+
+ (gimp-context-pop)
+ )
+)
+
+
+(define (script-fu-t-o-p-logo-alpha img
+ logo-layer
+ b-size
+ hit-rate
+ edge-size
+ edge-only
+ base-color
+ bg-color)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-t-o-p-logo-effect img logo-layer b-size hit-rate
+ edge-size edge-only base-color bg-color)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-t-o-p-logo-alpha"
+ _"_Particle Trace..."
+ _"Add a Trace of Particles effect to the selected region (or alpha)"
+ "Shuji Narazaki (narazaki InetQ or jp)"
+ "Shuji Narazaki"
+ "1997"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT _"Border size (pixels)" '(20 1 200 1 10 0 1)
+ SF-ADJUSTMENT _"Hit rate" '(0.2 0 1 .01 .01 2 0)
+ SF-ADJUSTMENT _"Edge width" '(2 0 128 1 1 0 0)
+ SF-TOGGLE _"Edge only" FALSE
+ SF-COLOR _"Base color" '(0 40 0)
+ SF-COLOR _"Background color" "white"
+)
+
+(script-fu-menu-register "script-fu-t-o-p-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+
+(define (script-fu-t-o-p-logo text
+ size
+ fontname
+ hit-rate
+ edge-size
+ edge-only
+ base-color
+ bg-color)
+ (let* ((img (car (gimp-image-new 256 256 RGB)))
+ (border (/ size 5))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text (* border 2) TRUE size PIXELS fontname))))
+ (gimp-image-undo-disable img)
+ (apply-t-o-p-logo-effect img text-layer border hit-rate
+ edge-size edge-only base-color bg-color)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-t-o-p-logo"
+ _"_Particle Trace..."
+ _"Create a logo using a Trace Of Particles effect"
+ "Shuji Narazaki (narazaki InetQ or jp)"
+ "Shuji Narazaki"
+ "1997"
+ ""
+ SF-STRING _"Text" "GIMP"
+ SF-ADJUSTMENT _"Font size (pixels)" '(100 1 1000 1 10 0 1)
+ SF-FONT _"Font" "Becker"
+ SF-ADJUSTMENT _"Hit rate" '(0.2 0 1 .01 .01 2 0)
+ SF-ADJUSTMENT _"Edge width" '(2 0 128 1 1 0 0)
+ SF-TOGGLE _"Edge only" FALSE
+ SF-COLOR _"Base color" '(0 40 0)
+ SF-COLOR _"Background color" "white"
+)
+
+(script-fu-menu-register "script-fu-t-o-p-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/text-circle.scm b/scripts/text-circle.scm
new file mode 100644
index 0000000..c1688ea
--- /dev/null
+++ b/scripts/text-circle.scm
@@ -0,0 +1,223 @@
+;; text-circle.scm -- a script for GIMP
+;; Author: Shuji Narazaki <narazaki gimp org>
+;; Time-stamp: <1998/11/25 13:26:51 narazaki gimp org>
+;; Version 2.5
+;; Thanks:
+;; jseymour jimsun LinxNet com (Jim Seymour)
+;; Sven Neumann <neumanns uni-duesseldorf de>
+;;
+;; Modified June 24, 2005 by Kevin Cozens
+;; Incorporated changes made by Daniel P. Stasinski in his text-circle2.scm
+;; script. The letters are now placed properly for both positive and negative
+;; fill angles.
+
+(if (not (symbol-bound? 'script-fu-text-circle-debug? (current-environment)))
+ (define script-fu-text-circle-debug? #f)
+)
+
+(define (script-fu-text-circle text radius start-angle fill-angle
+ font-size antialias font-name)
+
+ (define (wrap-string str)
+ (string-append "\"" str "\"")
+ )
+ (define (white-space-string? str)
+ (or (equal? " " str) (equal? "\t" str))
+ )
+
+ (let* (
+ (drawable-size (* 2.0 (+ radius (* 2 font-size))))
+ (script-fu-text-circle-debug? #f)
+ (img (car (gimp-image-new drawable-size drawable-size RGB)))
+ (BG-layer (car (gimp-layer-new img drawable-size drawable-size
+ RGBA-IMAGE "background" 100 NORMAL-MODE)))
+ (merged-layer #f)
+ (char-num (string-length text))
+ (radian-step 0)
+ (rad-90 (/ *pi* 2))
+ (center-x (/ drawable-size 2))
+ (center-y center-x)
+ (font-infos (gimp-text-get-extents-fontname "lAgy" font-size
+ PIXELS font-name))
+ (desc (nth 3 font-infos))
+ (start-angle-rad (* (/ (modulo start-angle 360) 360) 2 *pi*))
+ (angle-list #f)
+ (letter "")
+ (new-layer #f)
+ (index 0)
+ (ndx 0)
+ (ndx-start 0)
+ (ndx-step 1)
+ (ccw 0)
+ (fill-angle-rad 0)
+ (rot-op 0)
+ (radian-step 0)
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+ (gimp-context-set-antialias antialias)
+ (gimp-image-undo-disable img)
+ (gimp-image-insert-layer img BG-layer 0 0)
+ (gimp-edit-fill BG-layer BACKGROUND-FILL)
+
+ ;; change units
+ (if (< fill-angle 0)
+ (begin
+ (set! ccw 1)
+ (set! fill-angle (abs fill-angle))
+ (set! start-angle-rad (* (/ (modulo (+ (- start-angle fill-angle) 360) 360) 360) 2 *pi*))
+ (set! ndx-start (- char-num 1))
+ (set! ndx-step -1)
+ )
+ )
+
+ (set! fill-angle-rad (* (/ fill-angle 360) 2 *pi*))
+ (set! radian-step (/ fill-angle-rad char-num))
+
+ ;; make width-list
+ ;; In a situation,
+ ;; (car (gimp-drawable-width (car (gimp-text ...)))
+ ;; != (car (gimp-text-get-extent ...))
+ ;; Thus, I changed to gimp-text from gimp-text-get-extent at 2.2 !!
+ (let (
+ (temp-list '())
+ (temp-str #f)
+ (temp-layer #f)
+ (scale 0)
+ (temp #f)
+ )
+ (set! ndx ndx-start)
+ (set! index 0)
+ (while (< index char-num)
+ (set! temp-str (substring text ndx (+ ndx 1)))
+ (if (white-space-string? temp-str)
+ (set! temp-str "x")
+ )
+ (set! temp-layer (car (gimp-text-fontname img -1 0 0
+ temp-str
+ 1 antialias
+ font-size PIXELS
+ font-name)))
+ (set! temp-list (cons (car (gimp-drawable-width temp-layer)) temp-list))
+ (gimp-image-remove-layer img temp-layer)
+ (set! ndx (+ ndx ndx-step))
+ (set! index (+ index 1))
+ )
+ (set! angle-list (nreverse temp-list))
+ (set! temp 0)
+ (set! angle-list
+ (mapcar
+ (lambda (angle)
+ (let ((tmp temp))
+ (set! temp (+ angle temp))
+ (+ tmp (/ angle 2))
+ )
+ )
+ angle-list
+ )
+ )
+ (set! scale (/ fill-angle-rad temp))
+ (set! angle-list (mapcar (lambda (angle) (* scale angle)) angle-list))
+ )
+ (set! ndx ndx-start)
+ (set! index 0)
+ (while (< index char-num)
+ (set! letter (substring text ndx (+ ndx 1)))
+ (if (not (white-space-string? letter))
+ ;; Running gimp-text with " " causes an error!
+ (let* (
+ (new-layer (car (gimp-text-fontname img -1 0 0
+ letter
+ 1 antialias
+ font-size PIXELS
+ font-name)))
+ (width (car (gimp-drawable-width new-layer)))
+ (height (car (gimp-drawable-height new-layer)))
+ (rotate-radius (- (/ height 2) desc))
+ (angle (+ start-angle-rad (- (nth index angle-list) rad-90)))
+ )
+
+ (gimp-layer-resize new-layer width height 0 0)
+ (set! width (car (gimp-drawable-width new-layer)))
+ (if (not script-fu-text-circle-debug?)
+ (begin
+ (if (= ccw 0)
+ (set! rot-op (if (< 0 fill-angle-rad) + -))
+ (set! rot-op (if (> 0 fill-angle-rad) + -))
+ )
+ (gimp-item-transform-rotate new-layer
+ (rot-op angle rad-90)
+ TRUE 0 0)
+ (gimp-layer-translate new-layer
+ (+ center-x
+ (* radius (cos angle))
+ (* rotate-radius
+ (cos (if (< 0 fill-angle-rad)
+ angle
+ (+ angle *pi*)
+ )
+ )
+ )
+ (- (/ width 2))
+ )
+ (+ center-y
+ (* radius (sin angle))
+ (* rotate-radius
+ (sin (if (< 0 fill-angle-rad)
+ angle
+ (+ angle *pi*)
+ )
+ )
+ )
+ (- (/ height 2))
+ )
+ )
+ )
+ )
+ )
+ )
+ (set! ndx (+ ndx ndx-step))
+ (set! index (+ index 1))
+ )
+
+ (gimp-item-set-visible BG-layer 0)
+ (if (not script-fu-text-circle-debug?)
+ (begin
+ (set! merged-layer
+ (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
+ (gimp-item-set-name merged-layer
+ (if (< (string-length text) 16)
+ (wrap-string text)
+ "Text Circle"
+ )
+ )
+ )
+ )
+ (gimp-item-set-visible BG-layer 1)
+ (gimp-image-undo-enable img)
+ (gimp-image-clean-all img)
+ (gimp-display-new img)
+ (gimp-context-pop)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-text-circle"
+ _"Text C_ircle..."
+ _"Create a logo by rendering the specified text along the perimeter of a circle"
+ "Shuji Narazaki <narazaki gimp org>"
+ "Shuji Narazaki"
+ "1997-1998"
+ ""
+ SF-STRING _"Text" "The GNU Image Manipulation Program Version 2.0 "
+ SF-ADJUSTMENT _"Radius" '(80 1 8000 1 1 0 1)
+ SF-ADJUSTMENT _"Start angle" '(0 -180 180 1 1 0 1)
+ SF-ADJUSTMENT _"Fill angle" '(360 -360 360 1 1 0 1)
+ SF-ADJUSTMENT _"Font size (pixels)" '(18 1 1000 1 1 0 1)
+ SF-TOGGLE _"Antialias" TRUE
+ SF-FONT _"Font" "Sans"
+)
+
+(script-fu-menu-register "script-fu-text-circle"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/textured-logo.scm b/scripts/textured-logo.scm
new file mode 100644
index 0000000..e77c6c5
--- /dev/null
+++ b/scripts/textured-logo.scm
@@ -0,0 +1,178 @@
+; BLENDED-DROP-SHADOW-LOGO
+; draw the specified text over a blended background using current gimp fg
+; and bg colors. The finished blend has a drop shadow underneath that blends
+; to the specified bg-color
+; if the blend colors are specified as high intensity, the sharp option
+; should be enabled or the logo will come out blurry
+
+(define (apply-textured-logo-effect img
+ logo-layer
+ b-size
+ text-pattern
+ tile-type
+ bg-color
+ blend-fg
+ blend-bg)
+ (let* (
+ (b-size-2 (* b-size 0.5))
+ (f-size (* b-size 0.75))
+ (ds-size (* b-size 0.5))
+ (ts-size (- b-size-2 3))
+ (width (car (gimp-drawable-width logo-layer)))
+ (height (car (gimp-drawable-height logo-layer)))
+ (blend-layer (car (gimp-layer-new img width height RGBA-IMAGE
+ "Blend" 100 NORMAL-MODE)))
+ (shadow-layer (car (gimp-layer-new img width height RGBA-IMAGE
+ "Shadow" 100 NORMAL-MODE)))
+ (text-shadow-layer (car (gimp-layer-new img width height RGBA-IMAGE
+ "Text Shadow" 100 MULTIPLY-MODE)))
+ (tsl-layer-mask (car (gimp-layer-create-mask text-shadow-layer
+ ADD-BLACK-MASK)))
+ (drop-shadow-layer (car (gimp-layer-new img width height RGBA-IMAGE
+ "Drop Shadow" 100 MULTIPLY-MODE)))
+ (dsl-layer-mask (car (gimp-layer-create-mask drop-shadow-layer
+ ADD-BLACK-MASK)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (script-fu-util-image-resize-from-layer img logo-layer)
+ (script-fu-util-image-add-layers img text-shadow-layer drop-shadow-layer blend-layer shadow-layer)
+ (gimp-image-raise-item img text-shadow-layer)
+ (gimp-selection-all img)
+ (gimp-context-set-pattern text-pattern)
+ (gimp-layer-set-lock-alpha logo-layer TRUE)
+ (gimp-edit-bucket-fill logo-layer PATTERN-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)
+ (gimp-selection-none img)
+ (gimp-edit-clear text-shadow-layer)
+ (gimp-edit-clear drop-shadow-layer)
+ (gimp-context-set-background bg-color)
+ (gimp-drawable-fill shadow-layer BACKGROUND-FILL)
+ (gimp-context-set-feather-radius b-size-2 b-size-2)
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE b-size-2 b-size-2 (- width b-size) (- height b-size))
+ (gimp-context-set-feather FALSE)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill shadow-layer BACKGROUND-FILL)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE logo-layer)
+ (gimp-layer-add-mask text-shadow-layer tsl-layer-mask)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill tsl-layer-mask BACKGROUND-FILL)
+ (gimp-selection-feather img f-size)
+ (gimp-context-set-background '(63 63 63))
+ (gimp-edit-fill drop-shadow-layer BACKGROUND-FILL)
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill text-shadow-layer BACKGROUND-FILL)
+ (gimp-context-set-foreground '(255 255 255))
+
+ (gimp-edit-blend text-shadow-layer FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-SHAPEBURST-ANGULAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ 0 0 1 1)
+
+ (gimp-selection-none img)
+ (gimp-context-set-foreground blend-fg)
+ (gimp-context-set-background blend-bg)
+
+ (gimp-edit-blend blend-layer FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE
+ FALSE 0 0 TRUE
+ 0 0 width 0)
+
+ (plug-in-mosaic RUN-NONINTERACTIVE img blend-layer 12 1 1 0.7 TRUE 135 0.2 TRUE FALSE
+ tile-type 1 0)
+
+ (gimp-layer-translate logo-layer (- b-size-2) (- b-size-2))
+ (gimp-layer-translate blend-layer (- b-size) (- b-size))
+ (gimp-layer-translate text-shadow-layer (- ts-size) (- ts-size))
+ (gimp-layer-translate drop-shadow-layer ds-size ds-size)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE blend-layer)
+ (gimp-layer-add-mask drop-shadow-layer dsl-layer-mask)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill dsl-layer-mask BACKGROUND-FILL)
+ (gimp-layer-remove-mask drop-shadow-layer MASK-APPLY)
+ (gimp-selection-none img)
+
+ (gimp-context-pop)
+ )
+)
+
+(define (script-fu-textured-logo-alpha img
+ logo-layer
+ b-size
+ text-pattern
+ tile-type
+ bg-color
+ blend-fg
+ blend-bg)
+ (begin
+ (gimp-image-undo-group-start img)
+ (apply-textured-logo-effect img logo-layer b-size text-pattern tile-type
+ bg-color blend-fg blend-bg)
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush))
+)
+
+(script-fu-register "script-fu-textured-logo-alpha"
+ _"_Textured..."
+ _"Fill the selected region (or alpha) with a texture and add highlights, shadows, and a mosaic background"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1996"
+ "RGBA"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+ SF-ADJUSTMENT _"Border size (pixels)" '(20 1 100 1 10 0 1)
+ SF-PATTERN _"Pattern" "Fibers"
+ SF-OPTION _"Mosaic tile type" '(_"Squares"
+ _"Hexagons"
+ _"Octagons")
+ SF-COLOR _"Background color" "white"
+ SF-COLOR _"Starting blend" '(32 106 0)
+ SF-COLOR _"Ending blend" '(0 0 106)
+)
+
+(script-fu-menu-register "script-fu-textured-logo-alpha"
+ "<Image>/Filters/Alpha to Logo")
+
+(define (script-fu-textured-logo text
+ size
+ fontname
+ text-pattern
+ tile-type
+ bg-color
+ blend-fg
+ blend-bg)
+ (let* ((img (car (gimp-image-new 256 256 RGB)))
+ (b-size (* size 0.1))
+ (text-layer (car (gimp-text-fontname img -1 0 0 text b-size
+ TRUE size PIXELS fontname))))
+ (gimp-image-undo-disable img)
+ (apply-textured-logo-effect img text-layer b-size text-pattern tile-type
+ bg-color blend-fg blend-bg)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+ )
+)
+
+(script-fu-register "script-fu-textured-logo"
+ _"_Textured..."
+ _"Create a textured logo with highlights, shadows, and a mosaic background"
+ "Spencer Kimball"
+ "Spencer Kimball"
+ "1996"
+ ""
+ SF-STRING _"Text" "GIMP"
+ SF-ADJUSTMENT _"Font size (pixels)" '(200 1 1000 1 10 0 1)
+ SF-FONT _"Font" "CuneiFont"
+ SF-PATTERN _"Text pattern" "Fibers"
+ SF-OPTION _"Mosaic tile type" '(_"Squares"
+ _"Hexagons"
+ _"Octagons")
+ SF-COLOR _"Background color" "white"
+ SF-COLOR _"Starting blend" '(32 106 0)
+ SF-COLOR _"Ending blend" '(0 0 106)
+)
+
+(script-fu-menu-register "script-fu-textured-logo"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/title-header.scm b/scripts/title-header.scm
new file mode 100644
index 0000000..cca47f1
--- /dev/null
+++ b/scripts/title-header.scm
@@ -0,0 +1,178 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; Bump-mapped title script --- create a bump-mapped title image for web pages
+; Copyright (C) 1997 Federico Mena Quintero
+; federico nuclecu unam mx
+; ************************************************************************
+; Changed on Feb 4, 1999 by Piet van Oostrum <piet cs uu nl>
+; For use with GIMP 1.1.
+;
+; The corresponding parameters have been replaced by an SF-FONT parameter.
+; The call to gimp-context-set-background has been given a real layer
+; (although it is not used) otherwise gimp 1.1 crashed.
+; ************************************************************************
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+
+
+(define (script-fu-title-header text
+ size
+ fontname
+ gradient-reverse)
+ (let* (; Parameters
+
+ (padding 8)
+ (fade-width 64)
+
+ ; Image
+
+ (img (car (gimp-image-new 256 256 RGB)))
+
+ ; Text layer
+
+ (text-layer (car (gimp-text-fontname
+ img
+ -1
+ 0
+ 0
+ text
+ padding
+ TRUE
+ size
+ PIXELS
+ fontname)))
+ (text-width (car (gimp-drawable-width text-layer)))
+ (text-height (car (gimp-drawable-height text-layer)))
+
+ ; Sizes
+
+ (text-layers-offset (/ text-height 2))
+
+ (img-width (+ text-layers-offset text-width fade-width))
+ (img-height text-height)
+
+ ; Additional layers
+
+ (bg-layer (car (gimp-layer-new img img-width img-height RGBA-IMAGE
+ "bg-layer" 100 NORMAL-MODE)))
+ (bumpmap-layer (car (gimp-layer-new img
+ text-width
+ text-height
+ RGBA-IMAGE
+ "bumpmap-layer"
+ 100
+ NORMAL-MODE)))
+ (fore-layer (car (gimp-layer-new img text-width text-height RGBA-IMAGE
+ "fore-layer" 100 NORMAL-MODE)))
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ ; Create image
+
+ (gimp-image-undo-disable img)
+ (gimp-image-resize img img-width img-height 0 0)
+
+ (gimp-image-insert-layer img bg-layer 0 -1)
+ (gimp-image-insert-layer img bumpmap-layer 0 -1)
+ (gimp-image-insert-layer img fore-layer 0 -1)
+; (gimp-image-insert-layer img text-layer 0 -1)
+ (gimp-image-raise-item img text-layer)
+ (gimp-image-raise-item img text-layer)
+ (gimp-image-raise-item img text-layer)
+ (gimp-layer-set-offsets bg-layer 0 0)
+ (gimp-layer-set-offsets text-layer text-layers-offset 0)
+ (gimp-layer-set-offsets bumpmap-layer text-layers-offset 0)
+ (gimp-layer-set-offsets fore-layer text-layers-offset 0)
+
+ ; Create bumpmap layer
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill bumpmap-layer BACKGROUND-FILL)
+ (gimp-image-select-item img CHANNEL-OP-REPLACE text-layer)
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill bumpmap-layer BACKGROUND-FILL)
+ (gimp-selection-none img)
+ (plug-in-gauss-rle RUN-NONINTERACTIVE img bumpmap-layer 4.0 TRUE TRUE)
+
+ ; Fore layer, bumpmap
+
+ (gimp-context-set-background '(255 255 255))
+ (gimp-edit-fill fore-layer BACKGROUND-FILL)
+ (plug-in-bump-map RUN-NONINTERACTIVE img fore-layer bumpmap-layer 135.0 45.0 4 0 0 0 0 FALSE FALSE 0)
+
+ ; Text layer
+
+ (gimp-item-set-visible text-layer TRUE)
+ (gimp-layer-set-lock-alpha text-layer TRUE)
+
+ (gimp-edit-blend text-layer CUSTOM-MODE NORMAL-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE gradient-reverse
+ FALSE 0.2 3 TRUE
+ padding padding
+ (- text-width padding 1) (- text-height padding 1))
+
+ ; Semicircle at the left
+
+ (gimp-context-set-background '(0 0 0))
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+
+ (gimp-image-select-ellipse img CHANNEL-OP-REPLACE 0 0 text-height text-height)
+ (gimp-context-set-background (car (gimp-image-pick-color img text-layer
+ text-layers-offset 0
+ TRUE FALSE 0)))
+ (gimp-edit-fill bg-layer BACKGROUND-FILL)
+
+ ; Fade-out gradient at the right
+
+ (gimp-image-select-rectangle img CHANNEL-OP-REPLACE
+ (- img-width fade-width) 0
+ fade-width text-height)
+ (gimp-context-set-foreground (car (gimp-context-get-background)))
+ (gimp-context-set-background '(0 0 0))
+
+ (gimp-edit-blend bg-layer FG-BG-RGB-MODE NORMAL-MODE
+ GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE
+ FALSE 0.2 3 TRUE
+ (- img-width fade-width) 0 (- img-width 1) 0)
+
+ (gimp-selection-none img)
+
+ ; Done
+
+; (gimp-image-flatten img)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-title-header"
+ _"Web Title Header..."
+ _"Create a decorative web title header"
+ "Federico Mena Quintero"
+ "Federico Mena Quintero"
+ "June 1997"
+ ""
+ SF-STRING _"Text" "Hello world!"
+ SF-ADJUSTMENT _"Font size (pixels)" '(32 2 256 1 10 0 0)
+ SF-FONT _"Font" "Sans"
+ SF-TOGGLE _"Gradient reverse" FALSE
+)
+
+(script-fu-menu-register "script-fu-title-header"
+ "<Image>/File/Create/Logos")
diff --git a/scripts/truchet.scm b/scripts/truchet.scm
new file mode 100644
index 0000000..312eb16
--- /dev/null
+++ b/scripts/truchet.scm
@@ -0,0 +1,180 @@
+; GIMP - The GNU Image Manipulation Program
+; Copyright (C) 1995 Spencer Kimball and Peter Mattis
+;
+; 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 3 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, see <http://www.gnu.org/licenses/>.
+;
+; Truchet - a script to create Truchet patterns
+; by Adrian Likins <aklikins eos ncsu edu>
+; http://www4.ncsu.edu/~aklikins/
+; version about .8 give or take
+;
+; Lots of thanks to Quartic for his help.
+;
+;
+; The utility of this script is left as an exercise for the reader.
+;
+; NOTE: This script works best with even values for 'thickness'.
+
+(define (center-ellipse img cx cy rx ry op aa feather frad)
+ (gimp-context-push)
+ (gimp-context-set-antialias aa)
+ (gimp-context-set-feather feather)
+ (gimp-context-set-feather-radius frad frad)
+ (gimp-image-select-ellipse img op (- cx rx) (- cy ry) (+ rx rx ) (+ ry ry ))
+ (gimp-context-pop)
+)
+
+(define (use-tiles img drawable height width img2 drawable2 xoffset yoffset)
+ (gimp-edit-copy drawable2)
+ (let ((floating-sel (car (gimp-edit-paste drawable FALSE))))
+ (gimp-layer-set-offsets floating-sel xoffset yoffset)
+ (gimp-floating-sel-anchor floating-sel)
+ )
+)
+
+
+(define (create-tiles img drawable1 drawable2 size thickness backcolor forecolor)
+ (let* (
+ (half-thickness (/ thickness 2))
+ (outer-radius (+ (/ size 2) half-thickness))
+ (inner-radius (- (/ size 2) half-thickness))
+ )
+
+ (gimp-context-push)
+
+ (gimp-selection-all img)
+ (gimp-context-set-background backcolor)
+ (gimp-edit-fill drawable1 BACKGROUND-FILL)
+
+ (let* (
+ (tempSize (* size 3))
+ (temp-img (car (gimp-image-new tempSize tempSize RGB)))
+ (temp-draw (car (gimp-layer-new temp-img tempSize tempSize RGB-IMAGE "Jabar" 100 NORMAL-MODE)))
+ )
+ (gimp-image-undo-disable temp-img)
+ (gimp-image-insert-layer temp-img temp-draw 0 0)
+ (gimp-context-set-background backcolor)
+ (gimp-edit-fill temp-draw BACKGROUND-FILL)
+
+
+ (center-ellipse temp-img size size outer-radius outer-radius CHANNEL-OP-REPLACE TRUE FALSE 0)
+ (center-ellipse temp-img size size inner-radius inner-radius CHANNEL-OP-SUBTRACT TRUE FALSE 0)
+
+ (center-ellipse temp-img (* size 2) (* size 2) outer-radius outer-radius CHANNEL-OP-ADD TRUE FALSE 0)
+ (center-ellipse temp-img (* size 2) (* size 2) inner-radius inner-radius CHANNEL-OP-SUBTRACT TRUE
FALSE 0)
+ (gimp-context-set-background forecolor)
+ (gimp-edit-fill temp-draw BACKGROUND-FILL)
+
+ (gimp-selection-none temp-img)
+
+ (gimp-image-resize temp-img size size (- size) (- size))
+ ; woo hoo it works....finally...
+
+
+ (gimp-selection-all temp-img)
+ (gimp-edit-copy temp-draw)
+ (let ((floating-sel (car (gimp-edit-paste drawable2 FALSE))))
+ (gimp-floating-sel-anchor floating-sel))
+
+
+ (let ((floating-sel (car (gimp-edit-paste drawable1 FALSE))))
+ (gimp-floating-sel-anchor floating-sel))
+
+ (gimp-context-set-transform-resize TRANSFORM-RESIZE-CLIP)
+ (let ((drawble (car (gimp-item-transform-flip-simple drawable1
+ ORIENTATION-VERTICAL TRUE 0)))))
+
+
+ ;(gimp-display-new temp-img)
+ (gimp-image-delete temp-img)
+ (gimp-context-pop)
+ )
+ )
+)
+
+
+(define (script-fu-truchet size thickness backcolor forecolor xtiles ytiles)
+ (let* (
+ (width (* size xtiles))
+ (height (* size ytiles))
+ (img (car (gimp-image-new width height RGB)))
+ (tile (car (gimp-image-new size size RGB)))
+ (layer-one (car (gimp-layer-new img width height
+ RGB-IMAGE "Rambis" 100 NORMAL-MODE)))
+ (tiledraw1 (car (gimp-layer-new tile size size
+ RGB-IMAGE "Johnson" 100 NORMAL-MODE)))
+ (tiledraw2 (car (gimp-layer-new tile size size
+ RGB-IMAGE "Cooper" 100 NORMAL-MODE)))
+ (Xindex 0)
+ (Yindex 0)
+ )
+
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (gimp-image-undo-disable img)
+ (gimp-image-undo-disable tile)
+
+ (gimp-image-insert-layer img layer-one 0 0)
+ (gimp-image-insert-layer tile tiledraw1 0 0)
+ (gimp-image-insert-layer tile tiledraw2 0 0)
+
+
+ ;just to look a little better
+ (gimp-selection-all img)
+ (gimp-context-set-background backcolor)
+ (gimp-edit-fill layer-one BACKGROUND-FILL)
+ (gimp-selection-none img)
+
+ (create-tiles tile tiledraw1 tiledraw2 size thickness backcolor forecolor)
+
+
+ (while (<= Xindex xtiles)
+ (while (<= Yindex ytiles)
+ (if (= (rand 2) 0)
+ (use-tiles img layer-one height width tile tiledraw1 (* Xindex size) (* Yindex size))
+ (use-tiles img layer-one height width tile tiledraw2 (* Xindex size) (* Yindex size))
+ )
+ (set! Yindex (+ Yindex 1))
+ )
+ (set! Yindex 0)
+ (set! Xindex (+ Xindex 1))
+ )
+
+
+ (gimp-image-delete tile)
+ (gimp-image-undo-enable img)
+ (gimp-display-new img)
+
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register "script-fu-truchet"
+ _"T_ruchet..."
+ _"Create an image filled with a Truchet pattern"
+ "Adrian Likins <aklikins eos ncsu edu>"
+ "Adrian Likins"
+ "1997"
+ ""
+ SF-ADJUSTMENT _"Block size" '(32 2 512 1 10 1 1)
+ SF-ADJUSTMENT _"Thickness" '(2 1 512 1 10 1 1)
+ SF-COLOR _"Background color" "white"
+ SF-COLOR _"Foreground color" "black"
+ SF-ADJUSTMENT _"Number of X tiles" '(5 1 512 1 10 1 1)
+ SF-ADJUSTMENT _"Number of Y tiles" '(5 1 512 1 10 1 1)
+)
+
+(script-fu-menu-register "script-fu-truchet"
+ "<Image>/File/Create/Patterns")
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]