본문 바로가기
개발 이야기/자바

[JAVA, Android] Bitmap to byte array, Byte array to bitmap (비트맵을 바이트배열로 바꾸기, copypixelsfrombuffer, copypixelstobuffer)

by 런던살자 2018. 12. 4.

안녕하세요 마블랑입니다.


프로그래밍을 하다보면 이미지를 전송하거나 데이터베이스에 저장을 하고싶은 경우가 종종 있습니다.


그럴 경우 이미지를 바이트 배열로 바꿔주면 되는데요


JAVA 또는 안드로이드에서 이미지를 바이트 배열로 바꿔주는 방법이 있습니다.




1. 비트맵을 바이트 배열로 바꾸기 (Bitmap to byte array)

 

Bitmap bitmap; //비트맵 이미지


ByteBuffer buffer= ByteBuffer.Allocate(bitmap.ByteCount); //바이트 버퍼를 이미지 사이즈 만큼 선언

bitmap.copyPixelsToBuffer(buffer);//비트맵의 픽셀을 버퍼에 저

byte[] byteArray = buffer.ToArray<byte>(); //바이트 버퍼를 바이트배열로 변환




2. 바이트배열을 비트맵으로 바꾸기(Byte array to bitmap)


byte[] byteArray; //바이트 배열

Bitmap bitmap; 

 

int width = 320;  //이미지의 너비

int height = 240; //이미지의 높이


bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); //비트맵을 생성

ByteBuffer buffer = ByteBuffer.wrap(byteArray);

buffer.rewind();

bitmap.copyPixelsFromBuffer(buffer);//바이트배열을 비트맵으로 변환




예제와 같이 copyPixelsToBuffecopyPixelsFromBuffer를 사용하시면 쉽게 변환 할수 있습니다.


이상 마블랑이었습니다.

댓글