ImageMagick/Mogrify - 图像压缩编程实现

9

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

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

这张图片需要减小50%的大小,但是保持相同的尺寸!我可以调整图片大小,但如何像素化图像以降低分辨率,同时保持相同的尺寸?

1个回答

16

ImageMagick提供了 -compress 开关,可能可以满足您的需求。

-compress: 写入图像时使用指定类型的像素压缩。

选项有:None、BZip、Fax、Group4、JPEG、JPEG2000、Lossless、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

嘿,谢谢你的回答。我对有损压缩很感兴趣,但我认为图像尺寸会被调整... - Eamorr
你肯定可以处理这个,我会添加一个我刚试过的例子。 - c00kiemon5ter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接