libpng警告:sBIT块长度不正确

时间:2017-01-11 09:52:00

标签: image opencv image-processing png libpng

标题中提到的警告在尝试使用python 2.7在OpenCV2中显示图像时不断出现。

如何摆脱这种警告?

3 个答案:

答案 0 :(得分:2)

您可以使用pngcrush删除sBIT块:

pngcrush -rem sbit source.png fixed.png

事实上你甚至不需要说-rem sbit,因为pngcrush会检测到sBIT块无效的事实,并会为你静默删除它。

你也可以试试ImageMagick或GraphicsMagick

magick source.png fixed.png
gm convert source.png fixed.png

我相信ImageMagick和GraphicMagick都不支持编写sBIT块,因此无论它是否有效都会被删除。

答案 1 :(得分:1)

尝试通过pngcheck运行您的图片,看看它是否已损坏,或者它有什么问题。然后在任何地方修复源。

答案 2 :(得分:1)

sBIT 是指 重要位 用于传达与特定图像相关的信息。

在您的情况下,您使用的图像深度主要存在问题。 sBIT 会针对每种类型的图片进行更改。按图像类型我的意思是:灰度,RGB,带alpha的灰度等。

访问THIS PAGE并向下滚动到 sBIT重要位部分以了解详情。