2017-10-29 1 views
0

얼마 전에 비슷한 질문을 던져서 SDL2_image.h에서 다른 형식을로드하여 SDL 프로그램에서 이미지를로드하는 데 도움이되는지 물었습니다. 지금 발생하는 문제는 ".bmp"와 다른 형식으로 파일을로드하려고 할 때입니다. 예를 들어C++ SDL2 이미지 .bmp와 다른 형식로드하기

-이 코드는 잘 실행은

Img = IMG_LoadTexture(renderer, "./image.bmp"); 
SDL_QueryTexture(Img, NULL, NULL, &w, &h); 
rectImg.x = 0; rectImg.y = 0; rectImg.w = w/2; rectImg.h = h/2; 

if (Img == NULL) { 
    std::cout << "failed to load image"; 
} 

이 인쇄 콘솔에서 "이미지를로드하지 못했습니다."

Img = IMG_LoadTexture(renderer, "./image.jpg"); 
SDL_QueryTexture(Img, NULL, NULL, &w, &h); 
rectImg.x = 0; rectImg.y = 0; rectImg.w = w/2; rectImg.h = h/2; 

if (Img == NULL) { 
    std::cout << "failed to load image"; 
} 

이미지는 동일한 폴더에 있지만 두 번째 경우에는 오류가 발생합니다. SDL2 이미지가 이러한 종류의 파일을로드 할 수 없거나 잘못되었습니다.

답변

1

당신이 압축 포맷을 처리하는 데 필요한 초기화 코드 누락 것 같다 :

IMG_Init(IMG_INIT_JPG | IMG_INIT_PNG); 
+0

나는 이것이이 지정된 모듈을 찾을 수 없습니다 사용하려고을 다운로드해야 SDL2_Image 외부에서이 일이 있습니까? – darclander

+0

@darclander SDL2_image 바이너리 배포판은 libjpeg, libpng, ... 동적 라이브러리와 함께 제공되며'IMG_Init'을 통해 요청할 때만로드합니다. 필요한 라이브러리를 라이브러리 검색 경로 (또는 실행 파일이있는 디렉토리)에 넣어야합니다. – keltar

+0

Libjpeg 및 libpng가 이미 지정된 검색 경로에 있지만 사용자가 제공 한 코드와 함께 프로그램을 실행하면 오류 처리 이벤트가 발생하고 "libjpeg-9.dll"오류 메시지가 나타날 수 있지만 지정된 위치에 있습니다. path ... 위에서 언급 한대로 ... – darclander

관련 문제