为什么imagemagick中的PNG图像要用readimage和writeimage花费很多时间?

时间:2018-07-02 14:55:31

标签: go imagemagick

我正在使用Imagemagick版本7.0.5-4通过go-graphics库执行图像处理操作,例如裁切,调整大小等。我还管理着一个magickwand对象池。

Features: Cipher DPC HDRI Modules
Delegates (built-in): bzlib freetype jng jpeg ltdl lzma png tiff xml zlib

与jpg图像相比,png图像中对MagickWand对象的图像读取时间为magickWand.ReadImage(<url>)很高。对于大小约为22kb的图像,读取jpg文件大约需要300毫秒,而png图像大约需要1-2分钟。

编辑:

向服务器发送单个请求时,读取操作大约需要20毫秒,但是在负载为100rps时,读取操作将持续2-4分钟。这种趋势仅出现在png图像中,而不出现在jpg中。

关于阅读png文件有哪些不同之处以及如何使其表现出色的任何想法?可以将图像质量降低到60%左右。尝试了SetImageDepth之类的选项,但没有区别。

1 个答案:

答案 0 :(得分:1)

压缩质量参数在处理PNG文件和处理JPEG文件时具有不同的作用和含义。

PNG压缩始终无损,并且外观不受质量影响。由于看不到您的图像,建议您不要压缩,因为无论如何它都会发生,或者建议您使用75的质量。如果您告诉我要保存卡通或线条图,我可能会提出不同的建议。 / p>

请阅读here,并在时间和文件大小之间进行权衡取舍。

我为您制作了一些图,以显示使用两种不同类型的图像(卡通和照片)在不同质量设置下压缩时间和压缩大小的效果,以便您可以看到效果。

这是卡通:

enter image description here

看看质量设置(0-100)如何影响JPEG输出的时间和尺寸:

enter image description here

现在看看在生成PNG输出时使用相同的质量设置(0-100)会发生什么:

enter image description here


现在让我们来看一下将iPhone照片压缩为JPEG:

enter image description here

当将iPhone照片压缩为PNG时:

enter image description here


希望您会发现,从配置文件中为PNG和JPEG使用一种质量设置以及照片和卡通/线条图并不理想。