我正在使用CImg来读取.png文件,如下所示:
// DGT.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "..\CImg\CImg.h"
using namespace std;
using namespace cimg_library;
long ReadImage(char *fileName)
{
CImg<unsigned char> image(fileName); // stackover flow exceptions thrown here.
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
ReadImage("D:\\Projects\\DGT\\DGT\\shepplogan256.png");
return 0;
}
但是,尝试加载图像时,CImg<unsigned char> image(fileName);
会抛出堆栈溢出异常。图像在那里,所以我想知道我搞砸了哪里以及如何阅读图像?
答案 0 :(得分:1)
您需要libpng或imagemagick才能使用CImg
加载PNG文件。
答案 1 :(得分:0)
要本机读取.jpeg或.png文件,CImg需要您将代码与libpng或libjpeg链接,并定义宏cimg_use_png
或cimg_use_jpeg
。
通过这样做,根本不需要ImageMagick。我更喜欢这个解决方案,因为它不需要安装新的(外部)软件来读取图像文件,也简化了二进制文件的分发。