CImg阅读图像异常

时间:2014-09-25 19:30:09

标签: c++ image cimg

我正在使用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);会抛出堆栈溢出异常。图像在那里,所以我想知道我搞砸了哪里以及如何阅读图像?

2 个答案:

答案 0 :(得分:1)

您需要libpngimagemagick才能使用CImg加载PNG文件。

答案 1 :(得分:0)

要本机读取.jpeg或.png文件,CImg需要您将代码与libpng或libjpeg链接,并定义宏cimg_use_pngcimg_use_jpeg。 通过这样做,根本不需要ImageMagick。我更喜欢这个解决方案,因为它不需要安装新的(外部)软件来读取图像文件,也简化了二进制文件的分发。