Je veux qu'un utilisateur dessine quelque chose. Je vais faire pivoter cette image plusieurs fois et je vais enregistrer chaque fichier dans un dossier. Un modèle est img<degree>.png
, par exemple img24.png
est l'image originale pivotée de 24 degrés. C'est comme utiliser Rotate tool
, réglez-le à 24 degrés et l'exporter avec des séances par défaut. Le problème est que chaque fois que je tourne et que j'exporte vers png, les fichiers deviennent de plus en plus gros. Lorsque le fichier d'origine est 100x100 & 380B, le 9ème fichier est 413x412 2,47KB. Je veux que les images restent à la même taille (100x100 dans l'exemple ci-dessus).Rotation répétée - augmentation de la dimension de l'image à l'exportation vers png
(define (degrees-to-radians degrees) (/ (* degrees *pi*) 180))
(define (script-fu-rotate-and-save in-image in-drawable directory-name) ; degree)
(let ((ind 0) (x 0) (y 0))
(while (< ind 361)
(set! x (car (gimp-image-width in-image)))
(set! y (car (gimp-image-height in-image)))
(gimp-item-transform-rotate in-drawable (degrees-to-radians ind) FALSE (/ x 2) (/ y 2))
(file-png-save-defaults 1 in-image in-drawable (string-append directory-name "/img" (number->string ind) ".png") (string-append directory-name "/temp.png"))
(set! ind (+ ind 45))
)
)
;(gimp-displays-flush) ; show changes on image
)
(script-fu-register
"script-fu-rotate-and-save" ;name
"rotate and save"
"Rotates and saves"
"me"
"copyrights"
"today"
""
SF-IMAGE "image-main" 0
SF-DRAWABLE "drawable-main" 0
SF-DIRNAME "directory-name" ""
;SF-ADJUSTMENT "label" '(value lower upper step_inc page_inc digits type)
;SF-ADJUSTMENT "degree" '(1 1 360 1 1 0 0)
)
(script-fu-menu-register "script-fu-rotate-and-save" "<Image>/Rotate and save")