개발/ANDROID 안드로이드 / / 2022. 9. 16. 10:55

안드로이드 Base64, 비트맵 이미지를 String 변경 방법

반응형

비트맵 이미지를 String 변경하기

public String bitmapToString(Bitmap bitmap){
    String strBitmap = "";
    try {
        ByteArrayOutputStream baos = new  ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG,100, baos);
        //bitmap.createScaledBitmap(bitmap, bitmap.getWidth() * 2, bitmap.getHeight() * 2, true);

        byte [] b = baos.toByteArray();

        strBitmap = android.util.Base64.encodeToString(b, android.util.Base64.NO_WRAP);
        baos.flush();
    } catch (Exception e) {

    }
    return strBitmap;
}

 

// compress 이미지의 사이즈를 그대로 두고 퀄리티를 조절

압축할 파일 타입을 지정하고 (JPEG, PNG) 압축 퀄리티 (1~100)을 지정

 

JPEG : 압축 속도가 빠르고 파일 용량이 적으나 투명 값이 없는 24bit Bitmap 파일

PNG : 32bit Bitmap으로 투명값을 가진다.

압축 퀄리티 100일 경우 원본 그대로의 퀄리티

bitmap.compress(Bitmap.CompressFormat.PNG,100, baos);

 

// createScaledBitmap() 비트맵 이미지를 변경

비트맵 이미지의 사이즈를 2배로 확장, 

 

마지막 매개변수

true : 이미지의 픽셀을 조절해 이미지가 선명하게 보이도록 도와준다. 

          (이미지가 클 경우 Out of memory 가능성이 높다)

false : 픽셀을 2배로 늘려 이미지가 깨지거나 흐려 보이게 된다.

bitmap.createScaledBitmap(bitmap, bitmap.getWidth() * 2, bitmap.getHeight() * 2, true);

 

 

String을 비트맵 이미지로 변경하기

public Bitmap stringToBitmap(String strBitmap){
    byte [] encodeByte = android.util.Base64.decode(strBitmap, android.util.Base64.DEFAULT);
    Bitmap bitmap = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
    return bitmap;
}

 

 

android.util.Base64와 java.util.Base64의 차이점

 

android.util.Base64와 java.util.Base64의 차이점

android.util.Base64.encodeToString(byte [] input, int flags)의 flags 값을 확인해보면 strBitmap = android.util.Base64.encodeToString(b, android.util.Base64.DEFAULT); strBitmap2 = android.util.Base64..

overpay.tistory.com

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유