Свежие комментарии
    Благодарности: денежное общество и мойка авто

    Пакетное изменение размера изображений в 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 и ждем выполнения скрипта.
     

    Поделиться в соц. сетях

    Опубликовать в Facebook
    Опубликовать в Google Buzz
    Опубликовать в Google Plus
    Опубликовать в LiveJournal
    Опубликовать в Мой Мир
    Опубликовать в Одноклассники
    Опубликовать в Яндекс

    Комментарии закрыты.