; 210_distorts_amazing-circles.scm ; last modified/tested by Paul Sherman [gimphelp.org] ; Wednesday, 07/01/2020 on GIMP 2.10.20 ;================================================== ; ; Installation: ; This script should be placed in the user or system-wide script folder. ; ; Windows 7/10 ; C:\Program Files\GIMP 2\share\gimp\2.0\scripts ; or ; C:\Users\YOUR-NAME\AppData\Roaming\GIMP\2.10\scripts ; ; ; Linux ; /home/yourname/.config/GIMP/2.10/scripts ; or ; Linux system-wide ; /usr/share/gimp/2.0/scripts ; ;================================================== ; ; LICENSE ; ; 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 . ; ;============================================================== ; Original information ; ; Amazing Circles is a script for The GIMP ; ; Turn an image into an Amazing Circle. ; The script is located in menu " / Filters / Distorts / Circle Maker" ; Last changed: 7 August 2007 ; Copyright (C) 2007 Harry Phillips ; ; Made to not error out by attempting to use on indexed image ; and changed menu location by Paul Sherman on 11/30/2007 ; distributed by gimphelp.org ; 02/14/2014 - convert to RGB if needed ; -------------------------------------------------------------------- ; ; Changelog ; ; Version 1.5 (7th August 2007) ; - Added the option to choose the background colour: ; ; Version 1.4 (7th August 2007) ; - Cleaned up the code ; - Created a mini funtion "square-crop" ; - Added the cropping multi option ; ; Version 1.3 (5th August 2007) ; - Added GPL3 licence ; - Menu location at the top of the script ; - Removed the "script-fu-menu-register" section ; ; Version 1.2 ; - Made the script compatible with GIMP 2.3 ; ; Version 1.1 ; - Added a check to see if the image is already square ;============================================================== (define (square-crop image) (let* ( (width (car (gimp-image-width image))) (height (car (gimp-image-height image))) ) (if (= width height) () (begin ;Check which is longer (if (> width height) (gimp-image-crop image height height (/ (- width height) 2) 0) (gimp-image-crop image width width 0 (/ (- height width) 2)) )) ))) (define (210-amazing-circles theImage theLayer circlePercent backGround cropType ) (gimp-image-undo-group-start theImage) (if (not (= RGB (car (gimp-image-base-type theImage)))) (gimp-image-convert-rgb theImage)) ;Initiate some variables (let* ( ;Read the current colour (myBackground (car (gimp-context-get-background))) ) ;Set the background colour (gimp-context-set-background backGround) ;Select none (gimp-selection-none theImage) ;Select none (gimp-selection-none theImage) (if (= cropType 1) (square-crop theImage) () ) ;First polar co-ord with "To Polar = off" (plug-in-polar-coords 1 theImage theLayer circlePercent 0 1 0 0) ;Flip vertically (gimp-image-flip theImage 1) ;Second polar co-ord with "To Polar = on" (plug-in-polar-coords 1 theImage theLayer circlePercent 0 1 0 1) (if (= cropType 0) (square-crop theImage) () ) ;Reset the background colour (gimp-context-set-background myBackground) (gimp-image-undo-group-end theImage) (gimp-displays-flush) )) (script-fu-register "210-amazing-circles" "Circle Maker" "Does the amazing circles on a square image" "Harry Phillips" "Harry Phillips" "Mar. 23 2007" "*" SF-IMAGE "Image" 0 SF-DRAWABLE "Drawable" 0 SF-ADJUSTMENT "Circle depth" '(100 0 100 1 10 1 0) SF-COLOR "Surround colour" '(255 255 255) SF-OPTION "Crop image?" '("Crop after" "Crop before" "Don't crop") ) (script-fu-menu-register "210-amazing-circles" "/Script-Fu/Distorts")