【问题标题】:How to fix libpng warning when reading interlaced PNG?读取隔行扫描的 PNG 时如何修复 libpng 警告?
【发布时间】:2014-04-03 05:24:12
【问题描述】:

我在 Visual Studio 2010 中使用 OpenCV 来读取和显示一些图像(包括 jpg 和 png)。我的程序运行良好,但有时会失败并显示以下警告:

libpng warning: interlace handling should be turned on when using png_read_image.
OpenCV Error: Insufficient memory (failed to allocate 1398604 bytes) in unknown function, file ..\..\..\src\opencv\modules\core\src\alloc.cpp, line 52

我尝试在 Internet 上搜索修复程序,但找不到任何解决方法。任何有关此问题的帮助将不胜感激。

【问题讨论】:

    标签: visual-studio-2010 opencv image-processing windows-7 libpng


    【解决方案1】:

    number_passes = png_set_interlace_handling(png_ptr);
    

    在调用应用程序的适当位置, 紧接着

    png_get_IHDR();
    

    如果您不想重建调用应用程序, 一种解决方法是使用 ImageMagick 的“转换”等应用程序 在您尝试使用您的应用程序读取 PNG 之前,对 PNG 进行反交错:

    convert in.png -interlace none out.png
    

    【讨论】:

    • 感谢您的回复。
    猜你喜欢
    • 2019-10-15
    • 2012-01-11
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 2021-03-14
    • 2015-10-02
    • 1970-01-01
    相关资源
    最近更新 更多