0

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

1 に答える 1

0

奇妙に見えます。これは確かにJPG形式のファイルですか?いくつかの特別なJPEG形式(白黒、12ビット?、...)を使用していますか?

于 2013-01-10T08:27:38.777 に答える