我需要使用c ++处理学校项目的png图片。我发现png ++看起来很容易使用,但是我有一些非常困难的时间设置它以使其工作(它没有)。我使用Cygwin正确安装zlib和libpng。我在项目中正确地包含了png ++标题(我正在使用Eclipse)。以下是一些没有正常工作的事情:
如果我尝试这行代码(如here所示):
image img(1024,768);
我在eclipse上编译后得到了这个错误:
#error Byte-order could not be detected.
我读了这个答案here,但解决方案对我不起作用(我在Windows 8 64位上),我得到了另一个错误(这是我的主要问题,因为字节顺序可以是“残酷地”固定):
missing template arguments before 'img'
但即使我输入一个有效的模板参数(例如< png :: rgb_pixel>< png :: rgba_pixel>< png :: gray_pixel>< png :: ga_pixel>),它说它无效
我显然不是这方面的专家,我不知道还有什么可以尝试。任何帮助将非常感激。如果您需要更多信息,请写评论,我会提供。
答案 0 :(得分:0)
对于模板参数,我认为这实际上只是一个Eclipse问题,它应该编译得很好。但是为了摆脱Eclipse错误,你可以在这里看到我的答案:https://stackoverflow.com/a/28400902/583620。
对于字节顺序问题,解决这个问题的一个简单方法就是进入png ++头文件夹位置(可能在/ usr / local / include下),打开config.hpp,然后输入
#define _WIN32
在// Endianness test
评论之前。应该这样做。或者,您可以尝试前面发布的答案中提到的内容,并将_WIN32更改为WIN32,尽管在我的情况下,WIN32也未定义,因此更快地定义_WIN32。