Android

[Android] 화면을 비트맵 객체에 그리기

haehyun 2022. 3. 4. 19:33
728x90

화면을 비트맵 객체에 그리기

이미지 뷰가 출력하는 이미지를 Bitmap 타입으로 가져온다.

fun getBitmapFromView(view: View): Bitmap? {
    var bitmap = Bitmap.createBitmap(view.width, view.height, Bitmap.Config.ARGB_8888)
    var canvas = Canvas(bitmap)
    view.draw(canvas)
    return bitmap
}

 

반환값 함수 설명
Bitmap Bitmap.createBitmap(int width, int height, Bitmap.Config config) 지정된 너비, 높이의 변경 가능한 Bitmap을 반환한다.
Canvas Canvas(Bitmap bitmap) 그릴 비트맵을 사용해서 캔버스를 생성한다.
void draw(Canvas canvas) 주어진 Canvas에 해당 View(하위 View 포함)를 모두 수동으로 렌더링한다.
*canvas : View가 렌더링되는 Canvas 객체.

 

BitmapConfig

Enum Values 설명
ALPHA_8 각 픽셀은 단일 투명(ALPHA) 채널로 저장한다.
ARGB_8888 각 픽셀은 4바이트에 저장된다. (기존의 ARGB_4444 향상 버전)
HARDWARE 비트맵이 그래픽 메모리에만 저장되는 경우의 특수 설정.
RGBA_F16 각 픽셀은 8바이트에 저장된다.
RGB_565 각 픽셀은 2바이트에 저장되며 RGB 채널만 인코딩한다.

 


[참고자료]

 

728x90