1

我正在尝试编写一个简单的程序,该程序将使用 Boost 的 GIL Image I/O 库读取灰度 PNG 图像,然后获取每个像素的信息。我已经下载并提取了 libpng 和 zlib,将它们包含在我的 makefile 中,并链接了它们。

尝试执行以下代码时:

#include <boost/gil/gil_all.hpp>
#include <boost/gil/extension/io/png_dynamic_io.hpp>
#include <iostream>

int main()
{
    using std::cout;
    using std::endl;
    boost::gil::gray16_image_t image;
    cout << "TEST";
    boost::gil::png_read_and_convert_image("png16_example.png", image);
    cout << "test";
    return 0;
}

“测试”打印语句都不起作用。事实上,什么也没有发生。我注释掉了这一行:

boost::gil::png_read_and_convert_image("png16_example.png", image);

它再次运行良好。我不确定我做错了什么,因为似乎我已经正确地包含并链接了所有内容。

此外,如果有人知道加载 PNG 的更简单/更好的方法,我也愿意提供建议。

4

0 回答 0