convert


ia аватар

массовая манипуляция с графическими файлами через терминал

Бывает так, что нужно каким-либо образом преобразовать множество графических файлов, но не хочется это делать вручную, так как файлов может быть очень много. Столкнувшись с такой проблемой, поиски привели к пакету imagemagick, при работе с которым, хоть и можно использовать Иксы, предпочтение отдаётся терминальным командам и утилитам.

0
Ваша оценка: Ничего
ramok аватар

Оптимизация размера png

При работе с .png изображениями иногда проходят чудеса:

$ ls -l screen-split*
-rw-r--r-- 1 ramok ramok 51819 Авг 20 21:30 screen-split.png
$ convert -resize 640x480 screen-split.png screen-split.thumbnails.png
$ ls -l screen-split*
-rw-r--r-- 1 ramok ramok  51819 Авг 20 21:30 screen-split.png
-rw-rw-r-- 1 ramok ramok 836526 Авг 21 21:54 screen-split.thumbnails.png

Как видно уменьшив разрешение картики, размер увеличился в 16 раз. Почему это происходит точно я не знаю, говорят что то о неиндексиованной палитре.
Но с этим боротся можно специальными оптимизаторами .png

$ pngnq screen-split.thumbnails.png
$ ls -l screen-split*
-rw-r--r-- 1 ramok ramok  51819 Авг 20 21:30 screen-split.png
-rw-rw-r-- 1 ramok ramok 112174 Авг 21 21:54 screen-split.thumbnails-nq8.png
-rw-rw-r-- 1 ramok ramok 836526 Авг 21 21:54 screen-split.thumbnails.png
5
Ваша оценка: Ничего Рейтинг: 5 (1 голос)
ramok аватар

Сканирование и послеобработка изображений из командной строки

Возникла необходимость отсканировать пару страничек с паспорта и отослать по почте. Задача решилась таким вот способом.

# настраиваем сканер 
$ sudo apt-get install sane libsane
$ rehash
$ sudo sane-find-scanner -q
found USB scanner (vendor=0x04a9 [Canon], product=0x220e [CanoScan], chip=LM9832/3) at libusb:004:004
$ sudo scanimage -L
device `plustek:libusb:004:004' is a Canon CanoScan N1240U/LiDE30 flatbed scanner
 
# сканируем две странички паспорта в out1.pnm и out2.pnm
$ sudo xscanimage
 
# конвертим .pnm в .jpg
$ convert out1.pnm ukr-pass-1.jpg
$ convert out2.pnm ukr-pass-2.jpg
 
# проверяем что получилось
$ feh ukr-pass*.jpg
 
# поворачиваем на 180 градусов если надо. (повернуть фотографии можно и прямо в feh)
$ convert -rotate 180 ukr-pass-2.jpg  ukr-pass-2.jpg
 
# сливаем два изображения в одно
$ montage -adjoin -geometry 1024x768 ukr-pass-1.jpg ukr-pass-2.jpg ukr-pass.jpg 
 
# почистим за собой
$ rm out1.pnm out2.pnm ukr-pass-1.jpg ukr-pass-2.jpg
 
# отошлем сканы
$ mutt -a ukr-pass.jpg
4
Ваша оценка: Ничего Рейтинг: 4 (1 голос)

Подготовка фото для выкладывания в сеть

У вас есть коллекция фото в цифровом формате, немного места назнакомов www или ftp сервере и вы хотите поделиться этими фотками с друзьями. Это можно сделать, НО... как правило фото имеют весьма большие размеры. Уменьшить фоту можно примерно так: заходите в каталог где лежат ваши нетленные творения и набираете команду

for i in *.jpg; do convert -resize 640x480 -quality 85 $i small-$i.jpg; done

Утилита convert идет в составе программы ImageMagick. Данная команда читает все файлы с суффиксом jpg в текущем каталоге, приводит из к размероу 640х480 и записывает с префиксом small-.У вас есть коллекция фото в цифровом формате, немного места на знакомом www или ftp сервере и вы хотите поделиться этими фотками с друзьями. Это можно сделать, НО... как правило фото имеют весьма большие размеры. Уменьшить фоту можно примерно так: заходите в каталог где лежат ваши нетленные творения и набираете команду
 

0
Ваша оценка: Ничего