【问题标题】:Ignore ImageMagick or GraphicsMagick warning忽略 ImageMagick 或 GraphicsMagick 警告
【发布时间】:2019-07-10 10:59:13
【问题描述】:

下面的代码不仅会捕获错误,还会捕获一些带有特定输入的警告。有什么方法可以忽略所有警告而不是在 catch 块中检查它们?我知道我可以在终端上使用+profile "*",但我不知道用 C++ 解决什么问题。

try {
    Blob buff = Blob(input, inLen);
    pImage->read(buff);
} catch (Exception &error) {
    cout << error.what() << endl;
    delete(pImage);
    return -1;
}

【问题讨论】:

  • 警告也不例外,所以你无法捕捉到它们。您可以编辑 ImageMagick 的 log.xml 配置文件以将警告重定向到文件,或者禁用它们。
  • 我在 catch 块 Magick: Invalid cHRM red point () reported by coders/png.c:1106 (PNGWarningHandler) 中看到了这条消息。这不是警告吗?
  • 啊。也许我错了。我会发布一个可能的解决方案。

标签: c++ imagemagick graphicsmagick


【解决方案1】:

如果我正确阅读Exception.cppMagick::Exception 太笼统了。尝试将警告与错误隔离开来。

try {
    Magick::Blob buff = Magick::Blob(input, inLen);
    pImage->read(buff);
} catch (Magick::Warning &warning) {
    // Ignore, or log
} catch (Magick::Error &error) {
    cout << error.what() << endl;
    delete(pImage);
    return -1;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 2010-10-07
    • 1970-01-01
    • 2018-03-24
    • 2021-01-15
    • 2018-12-09
    • 2017-05-01
    相关资源
    最近更新 更多