Я хочу, чтобы пользователь рисовал что-то. Я буду вращать это изображение много раз, и я сохраню каждый файл в папке. Шаблон img<degree>.png
, например img24.png
- оригинальное изображение, повернутое на 24 градуса. Это похоже на использование Rotate tool
, установите его на 24 градуса и экспортируйте его по умолчанию.Повторное вращение - увеличение размера изображения при экспорте в png
Проблема в том, что каждый раз, когда я вращаюсь и экспортирую в png, файлы становятся все больше и больше. Когда исходный файл 100x100 & 380B, 9-й файл 413x412 2,47KB. Я хочу, чтобы изображения оставались одного размера (100x100 в приведенном выше примере).
(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")