我已按照 CImg教程进行操作,并且效果很好。但是,如果我尝试加载不同的图像(除了 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;
}