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

갤러리 이미지 원본을 byte로 변환 후 서버에 업로드하기

0 추천

BitmapFactory.Options options = new BitmapFactory.Options();

 options.inJustDecodeBounds = true;

 BitmapFactory.decodeFile(strImagePath, options);

options.inJustDecodeBounds = false;

Bitmap bitmapOriginal = BitmapFactory.decodeFile(strImagePath, options);

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

bitmapOriginal.compress(Bitmap.CompressFormat.PNG, 100, outputStream);

byte[] byteArray = outputStream.toByteArray() ;  

 

위의 코드와 같이 이미지 패스를 받아서 비트맵으로 변환 후 다시 바이트로 변경하는 로직을 사용중입니다.

3264*2448 이미지를 가져와서 서버에 올리니 이미지의 절반정도가 까맣게 나오고 정상적으로 나오지 않네요

그래서 options.inSampleSize = 2 로 주니 1634*1224로 이미지가 줄어들어 업로드한 이미지가 정상으로 출력되네요

혹시 풀사이즈 그대로 서버에 올릴 수 없나요??

 

익명사용자 님이 2015년 7월 30일 질문

2개의 답변

0 추천

1. 이미지를 바로 읽어 올리면 되는데, 왜 쓸데 없는 변환 작업을 하는지 이해가 안가네요..

 - 이미지 파일을 바로 읽어 서버로 전송하시는게 좋을 듯 합니다.
 
2. 이미지의 절반정도가 까맣게 나오고 정상적으로 나오지 않네요
 
 - 나와야 정상인데 안나오는 상황이니..
우선 이미지 업로드가 다 되었는지 부터 확인 해보세요.
 서버에 파일을 떨군 후 PC로 가져와서 뷰어로 볼 경우에도 마찬가지라면,
데이터 전송 시 오류가 발생한 것으로, 전송 로직쪽에서 전송 중 종료가 되는 경우가 있는지 확인하셔야 할 듯 하며,
서버에 떨군 파일이 정상일 경우에는, 영상 해상도가 높아 브라우져에서 메모리등의 제한으로 다 표시 못 한 듯 합니다. 
 
익명사용자 님이 2015년 7월 30일 답변
0 추천

음 꼭 비트맵으로 여서야 하는건가요?

그냥 바이너러 파일로 여셔서 넘기시면 않될까요. 이미지가 이미저장되어 있다면요.

http://stackoverflow.com/questions/9630430/upload-large-file-in-android-without-outofmemory-error

요런 식일듯 한데요

 

컴러기 (22,230 포인트) 님이 2015년 7월 30일 답변
...