본문 바로가기
안드로이드

[Android] Bitmap 이미지 두 장 합치기

by 코딩히어로 2022. 9. 13.
728x90

1


안드로이드 이미지를 작업하는 프로젝트에서 두 개의 비트맵 이미지를 붙여야 하는 경우

손쉽게 다음 코드를 통해서 구현이 가능합니다

private Bitmap[] listBitmap = new Bitmap[2];

먼저 비트맵을 합치기 위해서 두장의 비트맵을 넣어줄 Bitmap 배열을 만들어줍니다

BitmapDrawable drawable = (BitmapDrawable)imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
listBitmap[0] = bitmap;
BitmapDrawable drawable1 = (BitmapDrawable)imageView1.getDrawable();
Bitmap bitmap1 = drawable1.getBitmap();
listBitmap[1] = bitmap1;

imageView에서 각각 비트맵 이미지를 가져와서 만들어둔 Bitmap 배열에 넣어줍니다

Bitmap mergeImage = mergeMultiple(listBitmap);
mergeImage.compress(Bitmap.CompressFormat.JPEG,70,outputStream);

마지막으로 mergeMultiple 함수를 통해 합친 이미지를 만들어준 뒤에 outputStream으로 출력합니다.

여기에서 핵심은 mergeMultiple 함수인데 함수 내부 코드는 다음과 같습니다

private Bitmap mergeMultiple(Bitmap[] parts){
    Bitmap result = Bitmap.createBitmap(parts[0].getWidth() * 2, parts[0].getHeight() * 2, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(result);
    Paint paint = new Paint();
    for (int i = 0; i < parts.length; i++) {
        canvas.drawBitmap(parts[i], parts[i].getWidth() * (i % 2), parts[i].getHeight() * (i / 2), paint);
    }
    return result;
}

mergeMultiple 함수를 약간만 손보면 여러 장의 이미지도 합칠 수 있습니다.

728x90
반응형

댓글