Пакетное изменение размеров изображений (images resize)
for i in `ls`; do convert -resize 'x266' -quality 65 $i x266q65_$i; done
В результате выполнения этой команды все изображения, находящиеся в текущем каталоге, будут конвертированы в картинки с высотой в 266 пикселей. Результат будет сохранет в той же папке новыми файлами с префиксом x266q65_Далее-Старое-Название-И-Расширение.
Узнать размеры изображения
По вертикали:
height=`identify -ping -format "%h" IMG_4450.JPG`
По горизонтали:
width=`identify -ping -format "%w" IMG_4450.JPG`
Склейка нескольких картинок в один файл
Склеить все изображения в директории в матрицу 2х2 по 4 изображения:
montage *.jpg -tile 2x2 -geometry +10+10 out.jpg
Склеить 2 изображения в столбец 1х2 (по вертикали):
montage BMW_420d.jpg BMW_425d.jpg -tile 1x2 -geometry +10+10 BMW_xDrive.jpg
Склеить 2 изображения в строку 2х1 (по горизонтали):
montage BMW_520d.jpg BMW_525d.jpg -tile 2x1 -geometry +10+10 BMW_M5.jpg
Подписать каждое изображение в коллаже именем файла:
montage *.jpg -label %f -frame 10 -tile 2x2 -geometry +10+10 out.jpg
- geometry +10+10 — белые поля вокруг каждого изображения, заданные в пикселях
- frame 10 — 3D-рамка, пиксели
- label %f — подпись
Нарезать для Инстаграм
Когда мы хотим сделать 12 изображений для инстаграмм, то нарезать их можно так:
convert IMG-20171120-WA0026.jpg -crop 3x4@ +repage ржу%02d.jpg
Изменение размеров изображений
convert hkers.png -adaptive-resize 500x guy_hkers_500x.png
Растяжение гистограммы изображения (повышение цветовой чёткости)
Автоматический режим через normalize
convert $1 -normalize -sharpen $sharp -quality $quality -resize $newsize $2
Подмена цвета
convert create-code.png -fuzz 0% -fill '#39а' -opaque '#000' new-code.png
- -opaque '#000' — какой цвет искать
- -fill '#39а' — на какой подменять
- -fuzz 0% — точность задания цвета (отклонение 0%, т.е. искать и подменять только точно совпадающий с #000 цветом)
Конвертировать все картинки из текущей папки в один pdf и уменьшить их размер
convert *.jpg -scale 50% img.pdf
Оптимизация изображений
jpegtran
Командная строка программа jpegtran предоставляет несколько возможностей для переформатирования и перекодирования представления DCT коэффициентов, для преобразования фактических данных изображения и для отбрасывания вспомогательных данных в файлах JPEG, соответственно. Преобразования, касающиеся представления коэффициентов, включают:
- оптимизация уровня кодирования Хаффмана файла JPEG для увеличения сжатия,
- преобразование между прогрессивным и последовательным форматами JPEG,
- преобразование между кодированием Хаффмана и арифметическим кодированием на уровне энтропийного кодирования .
Каждое из этих преобразований полностью без потерь и обратимо.
Для базового варианта оптимизации вызываем команду:
jpegtran -copy none -optimize -outfile min.image.jpg image.jpg
сохранит оптимизированную копию в min.image.jpg
- copy none убирает все метаданные из исходного файла
- optimize оптимизирует изображение
Progressive
Для изменения формата на progressive следует использовать такую команду:
jpegtran **-progressive** -copy none -optimize -outfile min.pro.image.jpg image.jpg
сохранит результат в файл min.pro.image.jpg
Изменение качества
Вы также можете указать степень сжатия, чтобы наглядно подобрать лучшее значение:
jpegtran **-quality 80** -copy none -optimize -outfile min.pro.image.jpg image.jpg
Пробуйте разные значения от 5 до 95.
jpegoptim
jpegoptim --quiet --strip-all --all-progressive --stdout $file_in > $file_out
PNG
optipng -o7 -out automotive_logofeature-optipng.png automotive_logofeature.png
advpng -z -4 -i 50 automotive_logofeature-advpng.png
advdef -z -4 -i 50 automotive_logofeature-advdef.png
pngcrush -brute -reduce automotive_logofeature.png automotive_logofeature-pngcrush.png
pngnq -s 1 -v automotive_logofeature-pngnq.png
pngquant --speed 1 --force automotive_logofeature-pngquant.png
Еще об SVG
batik-svgpp
Batik SVG pretty printer — SVG Pretty Printer позволяет разработчикам «приводить в порядок» свои SVG-файлы и приводить в порядок свои таблицы и другие косметические параметры. Он также может быть использован для изменения объявления DOCTYPE в файлах SVG
И svgcleaner
Пакетная очистка SVG-файлов от ненужной информации, утилита удаляет атрибуты, не участвующие в формировании конечного изображения, а задействованные атрибуты приводит к более компактному виду. Размер файла может быть уменьшен на 60%.
Сокращенная информация о изображении:
identify img.jpg
А та же команда с параметром -verbose выведет полную информацию о изображении.
identify -verbose img.jpg
Пакетная обработка изображений с помощью ImageMagick
Я сам ей практически и пользуюсь чаще всего. Мне нечасто нужно работать с отдельными изображениями. Следующая команда обработает все изображения с разрешением .png повернет их на 180 градусов и запишет в файлы с новым именем rotated-предыдущее имя файла.
for file in *.png; do convert $file -rotate 180 rotated-$file; done
В общем утилита ImageMagick очень удобна и хороша в работе. А главное она сжимает практически без потерь качества, что немаловажно. Конечно она не подойдет для тех кто терпеть не может консоль. Но для других – очень даже ничего:) Пользуйтесь!;)
Как финал прочтения наиподробнейшего мануала, вот код:
for file in *.png; do convert -background red -fill white -gravity center \
-size 200 caption:СветланаАндреевнаКлишина \
$file +swap -gravity Northwest -composite \
/media/ink/ink-disk1/html/1_deploy/mama/label/$file; done
for file in *.png; do convert -caption "Клишина.РФ" $file -gravity center \
-background black +polaroid polaroid/$file; done