我有一些图像,我试图通过调整它们来规范化到一定的比例。 当我开始调整图像大小时,我注意到它们的体积(KB)变得比原始图像大得多。
我只是通过以下方式进一步检查: 转换x.png y.png 并有所不同。例如。在一种情况下,x.png是143KB,y.png是208KB。
由于我也在优化图像尺寸,我想知道是否有人知道为什么会出现这种情况以及任何解决这个问题的建议。
我在Windows 7上使用Imagemagick 6.6.4-Q16。
谢谢,阿米特
编辑:
感谢您的建议,伙计们,对不起的回复感到抱歉!这是我试图做的,这是结果。原始图像为112KB。不使用参数进行转换会产生169KB图像。使用OptiPNG(PNGCrush对我不起作用),-o7结果为113KB。然后我尝试在0-99之间的每个X转换质量X,并且我发现对于质量90我实现了116KB的文件大小,因此OptiPNG更好。但是 - 当我将-resize转换为较小的图像(按比例)时,我得到199KB没有参数,196KB用于最佳转换质量X(x = 0),196KB用于OptiPNG。 当我希望文件更小时,文件大小增加了75%,因为我将图像从377x2290调整为234x1419,调整了35%。有什么想法吗?
谢谢!
编辑 - 附加的图片+调查的调整大小问题:
这是三个图像的链接(查看字幕):原始图像,简单ImageMagick转换后的图像,以及optipng后的相同输出图像。 http://picasaweb.google.com/101622787022351879933/ImageMagickProblem?feat=directlink
另外,我认为ImageMagick的resize选项可能存在问题。我做了以下练习来隔离它: 对于1-100之间的每个x: 转换a.png -resize x%a_x.png
正如预期的那样,图像的大小几乎不断增加,从1%增加到100%。略有下降40%和50%。问题是从40%开始,输出图像大小会绕过原始图像大小。只有当你达到100%时,图像尺寸才会大幅回落到原始尺寸(实际上,我的第一次编辑稍微多一点 - 169KB而不是112KB,Optipng之后的113KB)。
即使在每个输出文件上使用-o7运行Optipng也无法解决此问题。
您可以在下图中看到此实验的结果: http://picasaweb.google.com/lh/photo/fFL1W6SiUfFWhBqdUf3BZg?feat=directlink
答案 0 :(得分:4)
PNG有许多不同的设置会影响压缩,并且无法保证默认的ImageMagick设置会选择特定的高效压缩。
最简单的解决方案是在完成ImageMagick后,通过OptiPNG运行PNG。默认情况下,它应该生成接近最佳压缩的东西,但是您可以要求它进行更详尽的测试以达到绝对最小值。
关于你的编辑:你必须要注意的一件事是resize方法。在调整大小期间,ImageMagick将使用filter,这会对使用PNG压缩图像的程度产生很大影响:毕竟,PNG是无损压缩,所以它不能像JPEG一样近似它。
哪种过滤器适合您,实际上取决于您拥有的图像类型,但您可以尝试各种选项,看看哪些看起来不错。您可能需要针对不同图像使用不同的过滤器。
答案 1 :(得分:4)
好的,问题在于迈克尔的建议过滤器。
这是我做的:
convert -list filter > 1.txt
获取所有过滤器的列表。 然后,对于每个x,该列表上的过滤器,我做了:
convert -filter x -resize 234x1419 a.png b_x.png
我记录了文件大小,然后对每个文件执行了“optipng -o7”。
对于我的案例,此图片的最佳过滤器是“Box”:它是唯一一个实际从112KB减少到111KB,然后通过optipng减少到81KB的过滤器。
我认为有趣的是,在所有这个过程之后,只有Box过滤器实际上减少了图像的大小,即使它们在调整大小过程后所有像素都较少。
BTW:注意以下陷阱
convert -filter Box -resize 234x1419 a.png a_box.png
如上所述,产生112KB的图像,可压缩到81KB。但是:
convert a.png -filter Box -resize 234x1419 a_box.png
会产生199KB的图像!
答案 2 :(得分:1)
我猜想ImageMagick还没有创建输入图像?可能ImageMagick没有最佳压缩或输入是调色板图像,ImageMagick创建RGB图像。在前一种情况下,您可以在缩小的图像上运行pngcrush以减小尺寸。