ImageMagick / Mogrify - 以编程方式压缩图像

时间:2011-06-13 14:42:37

标签: image command-line compression imagemagick

我正在尝试使用Perl中的Imagemagick在命令行上压缩图像(目前,我只能翻转它...)

system("/usr/bin/mogrify", "-flip","/var/www/images/$pid-$count.jpg");

图片的大小必须缩小50%,但保持相同的尺寸!我可以很好地调整图像大小,但如何像素化图像以降低分辨率,但保持相同的尺寸?

1 个答案:

答案 0 :(得分:13)

ImageMagick提供-compress开关,它可能会做你想要的。

  

-compress:在编写图像时使用按类型指定的像素压缩

     

选择包括:无,BZip,传真,Group4,JPEG,JPEG2000,无损,LZW,RLE或Zip。

     

要打印完整的压缩类型列表,请使用-list compress

     

指定+compress以未压缩格式存储二进制图像。默认值是指定图像文件的压缩类型。

     

如果指定了LZW压缩但尚未启用LZW压缩,则图像数据将以未压缩的LZW格式写入,可由LZW解码器读取。这可能会导致GIF文件大于预期。

     

无损是指无损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