【问题标题】:Redirecting libpng warnings C++重定向 libpng 警告 C++
【发布时间】:2020-11-08 11:10:12
【问题描述】:

我正在尝试使用 libpng 在 c++ 中创建一个程序,它只是比较图像并用它做一些事情,我的问题是 libpng 有时会显示警告(libpng 警告:iCCP:已知不正确的 sRGB 配置文件),我知道如何使用 ImageMagick 库和外部脚本解决它,我想知道的是,如果 a) 我可以重定向该警告吗?我尝试重定向 cout、clog 和 cerr,但消息仍然打印(我对其进行了测试,它阻止了我尝试的任何其他打印),并且 b) 有没有办法使用 Opencv2 和 c++ 纠正警告?

编辑: 在查看了 png_set_error_fn() 并发现我无法将它与 opencv2 一起使用后,我寻找了使用 libpng 打印错误和警告的缓冲区,它使用 stderr 并使用以下方式重定向它:

    const char* nullStream = "/dev/null";
    #ifdef "WIN32"
    nullStream = "nul:";
    #endif
    freopen(nullStream,"w",stderr);

【问题讨论】:

  • libpng 的源代码是免费的。您是否尝试过在该库的源代码中搜索该错误消息,然后查看该代码是否提供了某种抑制它的方法?
  • 不,我不知道,我去看看,希望有人比我更快地给出答案
  • 过去我也对某个特定图书馆正在做的事情有一些疑问。不完全是这样,但通常是其他一些没有很好记录的东西。我总是发现自己研究图书馆的源代码,最多可能在一两个小时内得到答案,而不是在某个网站或论坛上发布问题,然后等待一天左右有人回复。
  • 我在看那个图书馆和其他人,先生。 n. '代词' m,但我似乎找不到如何使用它

标签: c++


【解决方案1】:

在快速谷歌之后,似乎 libpng 支持将错误和警告重定向到您自己的回调中,png_set_error_fn 是您正在寻找的设置器。

【讨论】:

  • 那不行,opencv2 不允许我访问 png_set_error_fn 所需的 png_ptr
猜你喜欢
  • 2019-04-04
  • 2013-03-31
  • 2018-06-05
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多