【问题标题】:libpng warning: Incorrect sBIT chunk lengthlibpng 警告:sBIT 块长度不正确
【发布时间】:2017-05-26 01:08:02
【问题描述】:

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

如何摆脱这种警告?

【问题讨论】:

    标签: image opencv image-processing png libpng


    【解决方案1】:

    尝试通过pngcheck 运行您的图像,看看它是否损坏,或者它有什么问题。然后修复你从哪里得到它的源代码。

    【讨论】:

      【解决方案2】:

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

      在您的情况下,您使用的图像的深度主要存在问题。 sBIT 会因每种类型的图像而变化。我的意思是图像类型:灰度、RGB、带 alpha 的灰度等。

      访问THIS PAGE 并向下滚动到sBIT 有效位 部分以了解更多信息。

      【讨论】:

      • 我该如何克服这个警告?
      • 当您运行不同的图像时是否会出现此警告?
      • 没有。仅适用于 png 图片
      【解决方案3】:

      您可以使用 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 块,因此无论它是否有效都会被删除。

      【讨论】:

      • PNG sBIT 块的有效长度是多少(长度为字节数)?我认为删除块可能有问题。它可能可以在十六进制编辑器或其他东西中修复。
      猜你喜欢
      • 2014-05-09
      • 2019-04-04
      • 2018-11-28
      • 1970-01-01
      • 2013-03-31
      • 2016-10-15
      • 2018-06-05
      • 2020-11-08
      相关资源
      最近更新 更多