- Надо было для публикации изменить размер фотографий, их было много, открывать каждую не было ни желания, ни времени. В графическом редакторе 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