WebP使用ImageMagick MagickGetImageBlob减小图像大小

时间:2019-01-04 10:59:21

标签: imagemagick webp

我遇到了一个奇怪的问题,我试图通过MagickReadImageBlob读取WebP图像的blob,而在下一行中,我只是尝试使用MagickGetImageBlob来获取相同的blob。因此,我最终的Blob大小奇怪地减小了。那么,有人可以解释这种行为吗?

我正在使用版本:ImageMagick 6.9.8-10 Q16 x86_64 on ubuntu 16.04

1 个答案:

答案 0 :(得分:1)

  

那么,有人可以解释这种行为吗?

MagickReadImageBlob 将图像文件缓冲区解码为经过身份验证的像素的光栅。

MagickGetImageBlob 编码将光栅放回到图像文件缓冲区中。

WebP格式可以是有损的,也可以是无损的,并且可以在编码过程中实施不同的压缩技术。编码例程比上一个简单地找到了另一种存储栅格的方式,这很有可能。您的ImageMagick版本的量子深度为16(Q16),因此WebP的24位Color + 8位alpha到Q16的解码/缩放可能会影响某些编码变化。尝试设置MagickSetImageDepth(wand, 8)看看是否有帮助。