Пакетное изменение размера изображений в GIMP

Надо было для публикации изменить размер фотографий, их было много, открывать каждую не было ни желания, ни времени. В графическом редакторе GIMP есть прекрасный инструмент Script-Fu, с его помощью мы изменим фотографии.
У меня в GIMP есть стандартная функция изменения размера gimp-image-resize, но я так и не смог добиться её правильной работы, на просторах интернета был найден скрипт для моих целей.
Открываем GIMP, Для Linux меню Фильтры — Script-Fu — консоль, для Windows меню Расширения — Script-Fu — Консоль Script-Fu
 

 

 

 

 
скопируем скрип указанный ниже в поле написания скрипта и нажмем ENTER
 
(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))
)
)
)
 

 

 

 

далее в консоли пишем: (batch-resize путь_к_файлам размер_бОльшей_стороны качество).
для LINUX (batch-resize "/media/sdcard/*.jpg" 800 1). Или так: (batch-resize "/media/sdcard/*.jpg" "25%" 0.75)
Для Windows (batch-resize "C:\\images\\*.jpg" 800 1). Или так: (batch-resize "C:\\images\\*.jpg" "25%" 0.75)
Обратите внимание в пути для Windows необходимо слэши удваивать.
Нажимаем ENTER и ждем выполнения скрипта.
 
Пакетное изменение размера изображений в GIMP

Навигация по записям