ImageMagick / Mogrify - сжать изображение программно
Я пытаюсь сжать изображение в командной строке с помощью Imagemagick в Perl (в настоящее время я могу только перевернуть его...)
system("/usr/bin/mogrify", "-flip","/var/www/images/$pid-$count.jpg");
изображение должно быть сжато по размеру на 50%, но сохранить те же размеры! Я могу изменить размер изображения отлично, но как pixelate изображение, чтобы снизить разрешение, но сохранить те же размеры?
Я надеюсь, что кто-то там может помочь.
заранее огромное спасибо
1 ответов
ImageMagick предоставляет -compress переключатель, который может делать то, что вы хотите. 
-compress: используйте сжатие пикселей, заданное типом при записи изображениявыбор: Нет, BZip, факс, Group4, JPEG, JPEG2000, без потерь, LZW, RLE или Zip.
чтобы распечатать полный список типов сжатия, используйте
-list compress.указать
+compressдля хранения двоичного изображения в несжатом формате. По умолчанию тип сжатия указанного файла изображения.если задано сжатие LZW, но сжатие LZW не включено, данные изображения записываются в несжатом формате LZW, который может быть прочитан декодерами LZW. Это может привести к большему, чем ожидалось GIF-файлы.
Lossless относится к JPEG без потерь, который доступен только в том случае, если библиотека JPEG была исправлена для его поддержки. Использование JPEG без потерь обычно не рекомендуется.
использовать
-qualityопция для установки уровня сжатия, который будет использоваться кодерами JPEG, PNG, MIFF и MPEG. Используйте-sampling-factorопция для установки коэффициента выборки, который будет использоваться кодерами JPEG, MPEG и YUV для выборки каналов цветности.
проверьте этот пример / эксперимент:
>>> du data/lena.png 
464K    data/lena.png
>>> cp data/lena.png .
>>> convert lena.png lena.jpg
>>> du lena.jpg 
76K lena.jpg           # already a lot smaller by going png --> jpeg
>>> mogrify -compress JPEG -quality 5 lena.jpg
>>> du lena.jpg 
8.0K    lena.jpg       # well, it did compress a lot and it's still viewable