CImg库未加载图像

时间:2013-01-09 17:29:30

标签: c++ stack-overflow cimg

我已经按照CImg tutorial进行了操作,而且我完美无缺。但是,如果我尝试加载不同的图像(lena.jpg除外),我会收到堆栈溢出错误。

例如,这有效:

CImg<float> image;
string filePath = "C:/Users/zzz/Documents/lena.jpg";
image.load(filePath.c_str());

但这会产生错误:

CImg<float> image;
string filePath = "C:/Users/zzz/Documents/anotherimage.jpg";
image.load(filePath.c_str());

错误是: LoadImageTest.exe中0x77bb15de处的未处理异常:0xC00000FD:堆栈溢出。

我认为堆栈溢出是由于“anotherimage.jpg”太大,所以我也尝试了一个非常小的图像(16x16像素)。这导致了同样的错误。

有没有人对为什么会这样做有任何建议?

完整代码:

#include "stdafx.h"
#include <iostream>

#include "CImg.h"

using namespace cimg_library;
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    CImg<float> image;

    // This works...
    string filePath = "C:/Users/zzz/Pictures/lena.jpg";

    // This doesn't work...
    // string filePath = "C:/Users/zzz/Pictures/small.jpg";

    image.load(filePath.c_str());

    CImgDisplay main_disp(image, "The image");

    while (!main_disp.is_closed())
    {
        main_disp.wait();
    }

    return 0;
}

1 个答案:

答案 0 :(得分:0)

看起来很奇怪。你确定这确实是JPG格式的文件吗?它是否使用一些特殊的JPEG格式(B&amp; W,12位?,...)。