exelens 13.07.2009 11:02
Есть вопрос! — Пакетный ресайз картинок
У меня есть ряд директорий в которых находятся картинки.Необходимо сохраняя оригиналы картинок, создать маленькие с префиксом small (например).
Размер маленьких 200px ? 133px.
Важно получить высоту (200 px), а ширина должна быть согласно пропорции изображения.
Как такое сделать?
Пакетная обработка изображений в GIMP
http://habrahabr.ru/blogs/programming/25911/
http://habrahabr.ru/blogs/programming/25911/
Ставить GIMP только для пакетного ресайзинга? Это хорошо что exelens сидит в GNOME, а мне бы, пользователю KDE4 на Еее (где лишних мегабайтов не бывает) такой вариант не подошел бы.
exelens, нужно юзать imagemagick. ман тут: http://imagemagick.org/script/command-line-options.php#resize. это опция команды convert
ещё примеры: http://mydebianblog.blogspot.com/2007/07/imagemagick.html
ещё примеры: http://mydebianblog.blogspot.com/2007/07/imagemagick.html
for fname in *.jpeg; do mogrify -resize x y $fname; done
должен стоять пакет imagemagick ширину можно не указывать а писать только высоту
роазершите поправить:
В таком случае приведенный пример будет выглядеть так:
Естественно, вносим поправку на размер (цифра 200 взята из вопроса автора, высота пропущена, так как именно она и не важна нам) и расширение изображений (я тренировался на .jpg). Было бы еще интересно узнать как сделать тот же трюк, только уже с суффиксом small, например ($fname_small дает IMAGE0001.jpg_small)
Необходимо сохраняя оригиналы картинок, создать маленькие с префиксом small (например).
В таком случае приведенный пример будет выглядеть так:
for fname in *.jpg; do cp $fname small_$fname; mogrify -resize 200 small_$fname; done
Естественно, вносим поправку на размер (цифра 200 взята из вопроса автора, высота пропущена, так как именно она и не важна нам) и расширение изображений (я тренировался на .jpg). Было бы еще интересно узнать как сделать тот же трюк, только уже с суффиксом small, например ($fname_small дает IMAGE0001.jpg_small)
Самый очевидный путь — sed.
В любом случае советую внутри цикла юзать &&, а не ;, т.к. если копирование не удастся, то не будет что обрабатывать, и вы получите кучу ошибок от mogrify об отсутствии файла.
for fname in *.jpg; do cp $fname `echo "$fname" | sed s/.jpg/_small.jpg/` && mogrify -resize 200 `echo "$fname" | sed s/.jpg/_small.jpg/`; done
Или с оптимизацией:for fname in *.jpg; do sname=`echo $fname | sed s/.jpg$/_small.jpg/` && cp $fname $sname && mogrify -resize 200 $sname; done
В любом случае советую внутри цикла юзать &&, а не ;, т.к. если копирование не удастся, то не будет что обрабатывать, и вы получите кучу ошибок от mogrify об отсутствии файла.
В программе gThumb есть небольшой пакетный редактор. Есть и поворот и ресайз и конверт, также можно сделать обзорное изображение и интернет-альбом (последнее не проверял).
Тут как бы два варианта - либо GUI приложения, либо из консоли. Первых очень много, но если не сильно хочется качать все это дело и надо без особых плюшек - то делаем в консоли. В консоли это, как уже посоветовали, Imagemagick, и его алиас convert.
У нас не принято тупо постить урлы.
В следующий раз публикуй ответ на пост.
В следующий раз публикуй ответ на пост.
Я использую XnView почти для всего.
Как для просмотра картинок, так и для их пакетного преобразования.
Но возможности последнего на ресайзе не заканчиваются, там есть еще очень много "вкусняшек".
Недостатки:
1.Страшный интерфейс.
2.Хотелось бы быстрее.
Как для просмотра картинок, так и для их пакетного преобразования.
Но возможности последнего на ресайзе не заканчиваются, там есть еще очень много "вкусняшек".
Недостатки:
1.Страшный интерфейс.
2.Хотелось бы быстрее.
XnView живет на моей машине уже лет шесть наверное, и под оффтопом и под linux, для обработки изображений пользуюсь только этим пакетом, а вот от просмотра и оценки в нём отказался - интерфейс действительно застрял где-то в 90-х.
Ссылка есть, но на немецком языке описание.