2014-11-26 9 views
0

FreeImage 라이브러리를 사용하여 PNG를 텍스처 (메모리)로로드하려고했습니다.Android (NDK)의 FreeImage 문제

FIMEMORY *fiStream = FreeImage_OpenMemory(streamData, size); 
FREE_IMAGE_FORMAT fileFormat = FreeImage_GetFileTypeFromMemory(fiStream, 0); 
FIBITMAP *image = FreeImage_LoadFromMemory(fileFormat, fiStream, 0); 

int bitsPerPixel = FreeImage_GetBPP(image); 

width = (int)FreeImage_GetWidth(image); 
height = (int)FreeImage_GetHeight(image); 

내가 streamData 객체 스트림을 읽어 다음 파일을 열고하기는 fopen으로 파일을 사용하고 있습니다 : 그것은 코드의 조각입니다. 파일과 스트림을 올바르게 읽었습니다.

결과는 입니다. fileFormat = -1 및 이미지은 NULL입니다.

또한 FreeImage를 사용하여 FreeImage_Load을 사용하여 디스크에서 직접 PNG 파일을로드하려고했지만 결과는 동일합니다. 즉, NULL을 반환합니다.

아무도 비슷한 문제에 직면 했습니까? 메모리에서 데이터를 읽을 수있는 FreeImage의 대안을 제안 할 수 있습니까?

+0

당신이 그것을 해결 했습니까? 여기에 비슷한 문제가 있습니다 : http://stackoverflow.com/questions/42120978/freeimage-getfiletype-not-working-in-android-ndk – user7428910

+0

@ user7428910 사실 우리는 png 처리를 위해 라이브러리를 변경했습니다. FreeImage와 함께 작동하지 못했습니다. – rafalczuj

답변

0

메모리에서 이미지를로드하기 위해이 코드를 시도 :

File file = new File("/sdcard/Images/image1.jpg"); 

if(file.exists()){ 
    Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath()); 
    ImageView image = (ImageView) findViewById(R.id.imageview); 
    image.setImageBitmap(bitmap); 
} 
+0

빠른 답변 주셔서 감사 합니다만 순수한 네이티브 솔루션을 찾고 있습니다. – rafalczuj