Изменение размеров рисунков (Linux)

Изменение размеров рисунков (линукс) Часто возникает необходимость изменения размеров нескольких рисунков, иногда очень большого количества. Для таких целей в линукс есть прекрасный инструмент convert из состава imagemagick, если у вас он еще не установлен, то sudo aptitude install imagemagick Подготовим маленький shell-скрипт conv.sh
<pre>
#!/bin/sh
n=1
for f in $* ;do
convert -geometry 180×240 $f $n.jpg
n=$(($n + 1))
done
# end of script
</pre>
Если выполнить этот скрипт примерно так ./conv.sh ./img/IMG*.jpg то в каталоге ./img все рисунки, имена которых начинаются на IMG, скопируются в рисунки под номерами 1.jpg, 2.jpg и т.д. новыми размерами 180×240 (180 ширина, 240 высота). Можно указать только ширину, тогда высота изменится пропорционально. Если нужно оставить те же имена, то предварительно лучше создать каталог для новых рисунков, поскольку в каталог с оригинальными нельзя сохранять, они будут замещаться рисунками с новыми размерами. Скрипт в таком случае примет вид
<pre>
#!/bin/sh
for f in $* ;do
convert -geometry 180×240 $f /newcatalog/$f
done
# end of script
</pre>
Здесь скрипт упростился, счетчик уже не нужен. Можно имена новым рисункам дать другие, например добавить приставку convert -geometry 180×240 $f /newcatalog/min_$f Таким образом легко сделать миниатюры фотографий для сайта. Мало того, мы можем jpg сконвертировать в png и другие форматы. Для этого надо взять базовое имя исходного файла и добавить к нему нужное расширение
<pre>
#!/bin/sh
for f in $* ;do
convert -geometry 180×240 $f ${f%.*}.png
done
# end of script
</pre>

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *