안드로이드 개발 질문/답변
(글 수 45,052)
그림파일의 해상도를 알아내려고 합니다.
BitmapFactory.decodeFile 로 Bitmap 오브젝트를 만든 다음에
getWidth(), getHeight() 를 써서 구해왔었는데요
그림파일이 많아지자 메모리 문제로 뻗어버립니다.
Bitmap bm = BitmapFactory.decodeFile(FILE_PATH);
String resolution = null;
if(bm != null)
{
resolution = bm.getWidth() +" x "+bm.getHeight();
bm.recycle();
bm = null;
}
이런식으로 recycle로 시키고 있지만
계속해서 뻗어버립니다.
혹시 MediaStore 안에 그림파일의 해상도 정보가 들어가 있나 접근해 보았는데, 해상도 정보는 빠져있더군요.
HTC나 삼성 폰에 들어가 있는 Gallery 앱에서는 각 그림파일의 해상도 정보를 볼 수 있는 것에 착안해서
Gallery 앱의 소스파일을 뜯어보았는데 해상도 부분을 찾지 못하여
레퍼런스 폰인 넥서스S를 살펴보았더니 해상도 정보가 빠져 있군요.
그림파일의 헤더를 읽어서 파싱하는 방법 외에는 해결방법이 없을까요-?




비트맵 파일을 읽긴 읽어야 할겁니다.
근데 파일전부를 읽어오는게 아니라
앞부분만 읽어와서 해상도만 가져오는 방법은
펍게시판에 검색하시면 나옵니다.