2013-01-09 4 views
0

CImg tutorial을 따라했으며 완벽하게 작동합니다. 그러나 다른 이미지 (lena.jpg 제외)를로드하려고하면 스택 오버플로 오류가 발생합니다.CImg 라이브러리 로딩 이미지가 없습니다.

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()); 

오류는 다음과 같습니다 0xC00000FD라는 : 스택 오버 플로우 LoadImageTest.exe에서 0x77bb15de에서 처리되지 않은 예외입니다.

스택 오버플로가 "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

''C : \\ Users \\ zzz \\ Documents \\ lena.jpg "'시도해 봤어? – imreal

+0

더 많은 코드가 필요합니다. 우리는 코드를 좋아합니다. –

답변

0

이상한 보인다. 이것이 실제로 JPG 형식의 파일입니까? 특수 JPEG 형식 (B & W, 12 비트?, ...)을 사용합니까?

+0

고마워요! 이미지 속성을 살펴보면 lena.jpg는 사실 비트 맵 (이상한 이미지) 이었지만 다른 이미지는 진짜 jpeg였습니다. ImageMagick을 설치했는데 정상적으로 작동했습니다. – TallClimate