我正在尝试编写一个简单的程序,该程序将使用 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 的更简单/更好的方法,我也愿意提供建议。