2013-05-31 3 views
1

Cimg 라이브러리를 사용하여 jpg 파일을 읽으려고 할 때 스택 오버플로 오류가 발생합니다. 다른 형식 인 bmp는 작업 파일입니다.Cimg 라이브러리를 사용하여 jpeg 이미지를 읽을 때 스택 오버플로 오류가 발생했습니다.

어떻게 해결할 수 있습니까?

#include"CImg.h" 
    #include<stdio.h> 
    using namespace cimg_library; 
    int main() 
    { 
      CImg<unsigned char> src("d:\\sidimg.jpg"); 
      int width = src.width(); 
      int height = src.height(); 
      unsigned char* ptr = src.data(0,0); 
      int count=0; 
       while(count!= width*height) 
       { 

        printf("%d",*ptr); 
        ptr++; 
        count++; 
       } 
    } 
+0

이미지가 0 인덱스가 아니기 때문에 count Magn3s1um

+0

while 루프에는 아무 문제가 없습니다.이 프로그램을 bmp 파일로 잘 테스트하여 테스트했습니다. . 문제는 jpg 이미지 – siddstuff

+0

입니다. 스택 오버플로는 버퍼 또는 스택을 직접 덮어 쓸 때 발생합니다. 어쩌면 printf가 생성되어 오버플로가되기 때문에 stdout을 플러시해야합니다. 그것 이외에, 그것은 정상적으로 보이고, stdout가 그것의 가득 차있을 때 자동적으로 내뿜어 야하기 때문에, hsouldn't는 문제 일 것이다. – Magn3s1um

답변

0
늦은 답변 죄송합니다

,하지만 당신은 프로그램/쓰기의 jpeg 이미지를 읽기 위해 실행되는 경우 같은 디렉토리에 ImageMagick 패키지에서 convert.exe을 가지고 있습니다.