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 인덱스가 아니기 때문에 count
Magn3s1um
while 루프에는 아무 문제가 없습니다.이 프로그램을 bmp 파일로 잘 테스트하여 테스트했습니다. . 문제는 jpg 이미지 – siddstuff
입니다. 스택 오버플로는 버퍼 또는 스택을 직접 덮어 쓸 때 발생합니다. 어쩌면 printf가 생성되어 오버플로가되기 때문에 stdout을 플러시해야합니다. 그것 이외에, 그것은 정상적으로 보이고, stdout가 그것의 가득 차있을 때 자동적으로 내뿜어 야하기 때문에, hsouldn't는 문제 일 것이다. – Magn3s1um