안드로이드 개발 질문/답변
(글 수 45,052)
Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.icon);
bitmap.compress(CompressFormat.PNG, 100, outStream);
byte[] image = outStream.toByteArray();
ByteArrayInputStream inStream = new ByteArrayInputStream(
image );
Bitmap bm = BitmapFactory.decodeStream(inStream) ;
bitmap 을 byte로 변환시킨뒤 다시 bitmap으로 변환시키는 소스 입니다.
bitmap -> byte 까지는 정상적으로 작동하는데 byte ->bitmap 으로 변환시키는 것은 memory exceed 로 소스 맨 마지막 줄에서 오류가 납니다.
BitmapFactory.Options option = new BitmapFactory.Options();
option.inSampleSize = 1024;
위의 옵션을 이용해 보았지만 사이즈를 엄청나게 줄여야만 작동을 하며 결과도 형체를 알수 없는 그림을 출력합니다.
* 다운로드한 이미지나 컴퓨터를 통해 옮겨 넣은 이미지는 사이즈를 줄이지 않아도 정상적으로 작동하지만 꼭 핸드폰 카메라로 찍은 이미지만 memory exceed 오류가 발생합니다. - 용량은 둘다 비슷한 상황임에도 불고 하고 카메라 사진만 변환과정에서 오류납니다.
이것을 어떻게 해결해야 되나요?
사진을 byte나 string으로 변환시켜 db에 저장시킨뒤 다시 다운받으려고 하는 작업입니다.
자답입니다. 쓰레드 쓰면 되네요... 간단한것을