Base64: 이미지 변환하기(String, Bitmap, Uri)

최대 1 분 소요


</br>

이미지를 Base64 변환하기

/*
 Base64 String을 Bitmap으로 변환
*/
public static Bitmap StringToBitmap(String encodedString) {
    try {
        byte[] encodeByte = Base64.decode(encodedString, Base64.DEFAULT);
        Bitmap bitmap = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
        return bitmap;
    } catch (Exception e) {
        e.getMessage();
        return null;
    }
}

/*
 Bitmap을 Base64 String형으로 변환
*/
public static String BitmapToString(Bitmap bitmap) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 70, baos);
    byte[] bytes = baos.toByteArray();
    String temp = Base64.encodeToString(bytes, Base64.DEFAULT);
    return temp;
}

BitmapToString()에서 .compress()로 포맷과 품질을 설정할 수 있다.
https://codebeautify.org/base64-to-image-converter
구글에 검색하면 컨버터 홈페이지들도 많이 나온다. 돌려 보고 맞는 건가 싶으면 확인해 보면 될 듯
</br>

Uri를 Bitmap으로

번외로~~ Base64는 아니지만 얘가 더 쓰일 일이 많을 것이므로…

public Bitmap UriToBitmap(Uri imageuri) {
    Bitmap bm = null;
    try {
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
            bm = ImageDecoder.decodeBitmap(ImageDecoder.createSource(getContentResolver(), imageuri));
        } else {
            bm = MediaStore.Images.Media.getBitmap(getContentResolver(), imageuri);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return bm;
}

간단 간단하다. 버전 맞춰서 해 주면 됨~
</br>

댓글남기기