안녕하세요 푸민입니다.
Bitmap 객체를 저장할수 있는 방법이 다양한데요. 그중에서 DB 에 저장할수 있는 방법이 있습니다.
바로 byte[] 형식으로 변환하는 것이죠.
1. Bitmap to Byte[]
public byte[] bitmapToByteArray(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
return byteArray;
}
해당 메소드는 Bitmap 객체를 파라미터로 넘겨주면 byte[] 를 반환하는 메소드입니다. 먼저 ByteArrayOutputStream 을 생성하여 Bitmap 객체의 compress() 메소드를 통해서 스트림을 엽니다. 그 다음에 toByteArray() 메소드를 이용하여 byte[] 를 가져옵니다.
2. Byte[] to Bitmap
public Bitmap byteArrayToBitmap(byte[] byteArray, int num) {
// BitmapFactory.Options options = new BitmapFactory.Options();
// options.inSampleSize = 2;
Bitmap bitmap = null;
bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
//bitmap = BitmapFactory.decodeByteArray(byteArray, 0,
byteArray.length, options);
byteArray = null;
return bitmap;
}
byte[] 를 Bitmap 으로 변환할때는 BitmapFactory 객체의 decodeByteArray() 메소드를 사용합니다. 파라미터로 byte[] 과 크기를 넣어주면 됩니다. 그리고 사이즈 조정 등 각종 옵션을 설정할수 있습니다.
'Development > Android' 카테고리의 다른 글
[안드로이드] Android Naver 웹,앱 연동 및 검색스키마 사용! (0) | 2015.10.14 |
---|---|
[안드로이드] Android Fragment 사용 예제 (0) | 2015.10.14 |
[안드로이드] Android SQLite - 2 Handler 클래스 (0) | 2015.10.11 |
[안드로이드] Android SQLite - 1 Helper 클래스 (0) | 2015.10.10 |
[안드로이드] Android DecimalFormat (0) | 2015.10.09 |
댓글