안드로이드 비트맵 리사이즈 - android bitmap resize 안드로이드


안드로이드에서 비트맵 리사이징이 필요한 이유는 몇가지가 있을 수 있는데,

- 이미지 사이즈가 너무 커서 줄여야 하는 경우
- 인텐트를 이용하여 주고 받을 때 데이터 사이즈가 커서 안되는 경우
- 기타 메모리 부족 문제

어쨌거나 안드로이드에서 비트맵 리사이징 하는 방법에는 아래 코드와 같이 하는 방법이 있다.

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap src = BitmapFactory.decodeFile("/sdcard/image.jpg", options);
Bitmap resized = Bitmap.createScaledBitmap(src, dstWidth, dstHeight, true);

inSampleSize 값을 적절히 사용해도 되겠지만 특정 너비나 높이값에 맞추어야 할 경우도 있다.

아래 코드는 높이 118에 맞춰서(정확하게는 118 이하로) 리사이징 하는 방법이다.

Uri imgUri = data.getData();

Bitmap bitmap = Images.Media.getBitmap(getContentResolver(), imgUri);

int height = bitmap.getHeight();

int width = bitmap.getWidth();

// Toast.makeText(this, width + " , " + height, Toast.LENGTH_SHORT).show();

Bitmap resized = null;

while (height > 118) {

resized = Bitmap.createScaledBitmap(bitmap, (width * 118) / height, 118, true);

        height = resized.getHeight();

        width = resized.getWidth();

}

// Toast.makeText(this, width + " , " + height, Toast.LENGTH_SHORT).show();

coverImageView.setImageBitmap(resized);




덧글

  • 정현오 2014/03/11 17:25 # 삭제 답글

    아..이미지 사이즈 문제때문에 고생이었는데..감사합니다 참고 할께여 ㅎ
  • 난누구여긴어디 2014/03/13 16:52 #

    도움이 되셨다니 다행이네요 ^^
  • 리베스터 2016/04/04 13:11 # 삭제 답글

    덕분에 문제 해결하고 갑니다.!
    감사합니다.
  • carbo 2017/06/07 16:00 # 삭제 답글

    리사이즈 표현 방법이 깔끔하네요..
  • 김병희 2017/07/05 20:08 # 삭제 답글

    귀한 소스 발견하여 기쁩니다.
    감사합니다.
  • 알로베나 2018/09/04 18:55 # 삭제 답글

    정말감사합니다... 리사이즈때문에 몇일 몇주 고생했는데..해결되었습니다
댓글 입력 영역

Google Analytics