Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
(define (batch-resize pattern size quality)
(let* ((filelist (cadr (file-glob pattern 1)))
(len (if (string? size)
(string-length size)
0))
(rate (if (and (> len 0) (char=? #\% (string-ref size (- len 1))))
(/ (string->number (substring size 0 (- len 1))) 100)
0))
(size (if (> rate 0)
0
(if (> len 0) (string->number size) size))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image)))
(old-width (car (gimp-image-width image)))
(old-height (car (gimp-image-height image)))
(width (if (> rate 0)
(* rate old-width)
(if (> old-width old-height)
size
(* size (/ old-width old-height)))))
(height (if (> rate 0)
(* rate old-height)
(if (> old-width old-height)
(* size (/ old-height old-width)) size))))
(gimp-image-scale image width height)
(file-jpeg-save RUN-NONINTERACTIVE image drawable filename filename
quality 0 1 1 "" 2 1 0 0)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))
Когда я показал, что могу делать в GIMP на python-fu, одной знакомой дизайнеру она меня заставила этот GIMP сначала поставить ей на Windows, потом она сообщила, что в Windows он выглядит некрасиво, и заставила ставить ей Linux. Я честно её отговаривал :) не получилось на свою голову. Сейчас ещё python'у учить :)
Пакетная обработка изображений в GIMP