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