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

ImageMagick/Mogrify-以编程方式压缩图像,image,command-line,compression,imagemagick,Image,Command Line,Compression,Imagemagick,我正在尝试使用Perl中的Imagemagick在命令行上压缩图像(目前,我只能翻转它…) 图像的大小必须压缩50%,但保持相同的尺寸!我可以很好地调整图像的大小,但是如何对图像进行像素化以降低分辨率,但保持相同的尺寸?ImageMagick提供了开关,它可以实现您想要的功能 -compress:在写入图像时使用类型指定的像素压缩 选项有:无、BZip、传真、Group4、JPEG、JPEG2000、无损、LZW、RLE或Zip 要打印压缩类型的完整列表,请使用-list compress 指定

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

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

ImageMagick提供了开关,它可以实现您想要的功能

-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编码器使用的压缩级别。使用
-采样因子
选项设置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

嘿,谢谢你的回答。我对有损压缩感兴趣,但我认为图像尺寸会被调整……你完全可以使用它,我将添加一个我刚刚尝试过的示例
>>> 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