Created
January 12, 2016 21:46
-
-
Save callistabee/3d0c1bf9499488318beb to your computer and use it in GitHub Desktop.
cycle a layer through all possible hues and save frames (for making a gif!)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(define (rainbow img layer dirname) | |
(let ( (c 0) | |
(dup-layer 0) | |
(dup-img 0) | |
(to-save 0) | |
) | |
(set! c -180) | |
(while (<= c 180) | |
; duplicate layer | |
(set! dup-layer (car (gimp-layer-copy layer 0))) | |
; add duplicate layer to image | |
(gimp-image-add-layer img dup-layer 0) | |
; adjust layer | |
(gimp-hue-saturation dup-layer 0 c 0 0) | |
; duplicate image | |
(set! dup-img (car (gimp-image-duplicate img))) | |
; merge duplicate image | |
(set! to-save (car (gimp-image-merge-visible-layers dup-img 1))) | |
; save! | |
(let* ( (fname-suffix (number->string (if (< c 0) (+ c 360) c))) | |
(fname (string-append dirname "/rainbow" fname-suffix ".png")) | |
) | |
(file-png-save-defaults 1 dup-img to-save fname fname) | |
) | |
; delete duplicate image | |
(gimp-image-delete dup-img) | |
; remove modified layer | |
(gimp-image-remove-layer img dup-layer) | |
; increment counter | |
(set! c (+ c 1)) | |
) | |
) | |
) | |
(script-fu-register | |
"rainbow" | |
"Rainbow Magic" | |
"Do some rainbow magic." | |
"Kendall Stewart" | |
"Kendall Stewart" | |
"2016" | |
"RGB*" | |
SF-IMAGE "Image" 0 | |
SF-DRAWABLE "Layer" 0 | |
SF-DIRNAME "Directory" "/tmp/" | |
) | |
(script-fu-menu-register | |
"rainbow" | |
"<Image>/Colors" | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
oh yeah, the gif-making code: