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

갤러리 이미지 서버업로드시 Out of memory 오류발생

0 추천

안녕하세요

핸드폰에 있는 갤러리를 서버에 업로드 시키려고 하는데 ,, Out of memory 문제가 발생을 하여서요,,

일단 저는 

intent 에서 넘어온 사진 정보를 비트맵으로 이미지뷰에 셋을하였고 , getStringImage라는 메소드로 이미지를 인코딩하여 서버로 보냈습니다.

여기서 1.2MB 이하의 데이터는 서버로 잘 전송되는반면.. 그 이상의 크기는 Out of memory 오류가 발생합니다.

같은 오류를 겪으신분들이나 사진용량을 줄이는법을 알고 계시다면..댓글 감사하겠습니다.

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
        Uri filePath = data.getData();
        try {
            //Getting the Bitmap from Gallery
            bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
           
            imageView.setImageBitmap(bitmap);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

getStringImage(이미지 인코딩)

public String getStringImage(Bitmap bitmap){
    Log.i("MyHitesh",""+bitmap);
    ByteArrayOutputStream baos=new  ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG,100, baos);
    byte [] b=baos.toByteArray();
    String temp= Base64.encodeToString(b, Base64.DEFAULT);
    return temp;
}

 

cehs0703 (340 포인트) 님이 2018년 8월 26일 질문

1개의 답변

0 추천

비트맵 파일 샘플링 과정입니다.

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

options.inSampleSize = 1 

options.inPreferredConfig = Bitmap.Config.ARGB_8888;

출처: http://yeolco.tistory.com/44 [열코의 프로그래밍 일기]

참고하세용

열코 (890 포인트) 님이 2018년 8월 27일 답변
...