Gimp/plug-ins/script-fu/scripts/coffee.scm
Kevin Cozens 590c4d0b9f Moved the MIN and MAX entries for image size and resolution to
2006-10-20  Kevin Cozens  <kcozens@cvs.gnome.org>

	* plug-ins/script-fu/scheme-wrapper.c: Moved the MIN and MAX entries
	for image size and resolution to script_constants structureas they
	are not deprecated constants.

	* plug-ins/script-fu/scripts/script-fu.init: Removed CR in line endings.

	* plug-ins/script-fu/scripts/*.scm: Fixed a number of regressions that
	snuck in during the last big update of the scripts. This update
	reduces the number of differences to the original scripts (other than
	formatting). Some additional formatting changes in a few scripts.
	Updates to use colour names in register block where possible. Fixed a
	bug in burn-in-anim.scm. Minor cleanup of font-map.scm. Simplified
	the bug fix in tile-blur.scm.
2006-10-20 17:55:14 +00:00

93 lines
3.2 KiB
Scheme

; 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 2 of the License, or
; (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program; if not, write to the Free Software
; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
(define (script-fu-coffee-stain inImage inLayer inNumber inDark)
(let* (
(theImage inImage)
(theHeight (car (gimp-image-height theImage)))
(theWidth (car (gimp-image-width theImage)))
(theNumber inNumber)
(theSize (min theWidth theHeight))
(theStain)
)
(gimp-context-push)
(gimp-image-undo-group-start theImage)
(while (> theNumber 0)
(set! theNumber (- theNumber 1))
(set! theStain (car (gimp-layer-new theImage theSize theSize
RGBA-IMAGE "Stain" 100
(if (= inDark TRUE)
DARKEN-ONLY-MODE NORMAL-MODE))))
(gimp-image-add-layer theImage theStain 0)
(gimp-selection-all theImage)
(gimp-edit-clear theStain)
(let ((blobSize (/ (rand (- theSize 40)) (+ (rand 3) 1))))
(gimp-ellipse-select theImage
(/ (- theSize blobSize) 2)
(/ (- theSize blobSize) 2)
blobSize blobSize CHANNEL-OP-REPLACE TRUE 0 FALSE)
)
(script-fu-distress-selection theImage theStain
(* (+ (rand 15) 1) (+ (rand 15) 1))
(/ theSize 25) 4 2 TRUE TRUE)
(gimp-context-set-gradient "Coffee")
(gimp-edit-blend theStain CUSTOM-MODE NORMAL-MODE
GRADIENT-SHAPEBURST-DIMPLED 100 0 REPEAT-NONE FALSE
FALSE 0 0 TRUE
0 0 0 0)
(gimp-layer-set-offsets theStain
(- (rand theWidth) (/ theSize 2))
(- (rand theHeight) (/ theSize 2)))
)
(gimp-selection-none theImage)
(gimp-image-undo-group-end theImage)
(gimp-displays-flush)
(gimp-context-pop)
)
)
; Register the function with the GIMP:
(script-fu-register "script-fu-coffee-stain"
_"_Coffee Stain..."
_"Add realistic looking coffee stains to the image"
"Chris Gutteridge"
"1998, Chris Gutteridge / ECS dept, University of Southampton, England."
"25th April 1998"
"RGB*"
SF-IMAGE "The image" 0
SF-DRAWABLE "The layer" 0
SF-ADJUSTMENT _"Stains" '(3 1 10 1 1 0 0)
SF-TOGGLE _"Darken only\n(Better, but only for images with a lot of white)" TRUE
)
(script-fu-menu-register "script-fu-coffee-stain"
"<Image>/Filters/Decor")