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;
}