마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미지 업로드 할 때 업로드 전에 리사이즈

0 추천
서버에서는 안드로이드로 내려줄때 이미지 리사이즈를 수행하지만

안드로이드 기기에서 서버로 업로드 할 때 이미지 파일의 리사이즈를 수행하지 않게 현재 되 있습니다.

그런데, 요새 기기의 고해상도 카메라로 찍을경우 한 이미지당 20MB에 가까운 사이즈가 나옵니다.

이걸 안드로이드 기기 단에서 업로드전에 리사이즈 하고 싶은데 가능할까요?

가능하다면 혹시 오픈소스 같은게 있으면 추천 부탁드립니다.
랍스타와킹크랩 (1,970 포인트) 님이 2015년 9월 16일 질문
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile( path, options );
같은 옵션이 있습니다. 이옵션은 실제 메모리로 이미지를 로드하지 않습니다.
이옵션을 사용하고 aucd29님이 링크 걸어주신 사이트의 코드를 이용하시면  좀더 메모리 문제에서 안전하게 이미지 리사이징을 하실수 있을 것 같습니다.
현재 응용해서 코드를 짰는데요. 여러가지 상황으로 테스트 중인데 잘되는것 같습니다. 감사합니당
음.. 안타깝게도 options.inJustDecodeBounds = true; 적용시 메모리에 올라가지 않기때문에 Bitmap객체 생성이 안됩니다. 해당 Bitmap의 사이즈정도는 미리 알수는 있네요.
네 메모리 로드없이 미리 파일크기를 예상해서 실제로딩은 리사이즈된 크기로 로딩하기위해 머리 한번 크기만 읽오는 것입니다.
그이후 inJustDecodeBounds=false로 다시 읽어오는 것이지요.
즉 options.inSampleSize = 4; <- 에서와 같이 저 4에 해당 하는 값을 구하기 위한 용도로 보통은 사용합니다.

1개의 답변

0 추천
 
채택된 답변
aucd29 (218,390 포인트) 님이 2015년 9월 16일 답변
랍스타와킹크랩님이 2015년 9월 16일 채택됨
...