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

이미지 리사이징후 서버 업로드

0 추천

카메라로 사진을 찍으면 사진 절대경로를 받아서

AsyncTask로 절대경로를 넘깁니다.

그 후, doInBackground에서 절대경로를 통해

File객체를 생성하고, 이것을 multipart form 형식으로

서버로 보냅니다. 

 

그런데 사진 이미지가 너무 커서 

이미지 리사이징을 하고 싶은데..

어떤식으로 해야 할까요??

혹시 file객체를 바로 줄이는 방법이 있나요

 

 

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

    if(resultCode != RESULT_OK)
        return;

    if(requestCode == PICK_FROM_CAMERA){
        //선택한 사진의 uri
        imageUri = data.getData();
        Log.d("메시지", "uri = "+imageUri);

        // 선택한 사진의 절대경로 구하는 것
        Cursor c = this.getContentResolver().query(imageUri, null, null, null, null);
        c.moveToNext();
        absolutePath = c.getString(c.getColumnIndex(MediaStore.MediaColumns.DATA));
        Log.d("메시지", "절대경로 : "+absolutePath);
        Glide.with(this).load(imageUri).into(image);

    }
}
익명사용자 님이 2017년 1월 23일 질문

1개의 답변

0 추천
가장 간단한 방법으로는

선택된 파일을 Bitmap으로 변환하여 compress 하는 방법이 있습니다.

http://stackoverflow.com/questions/8417034/how-to-make-bitmap-compress-without-change-the-bitmap-size

 

아니면 BitmapFactory를 사용해서 Option을 통해 이미지 샘플링을 하여 크기를 줄이는 방법도 있습니다.

이게 제일 효과적일수 있겠네요.

http://aroundck.tistory.com/59
Development Guy (70,570 포인트) 님이 2017년 1월 23일 답변
...