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