728x90
안드로이드 이미지를 작업하는 프로젝트에서 두 개의 비트맵 이미지를 붙여야 하는 경우
손쉽게 다음 코드를 통해서 구현이 가능합니다
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
반응형
'안드로이드' 카테고리의 다른 글
[Android] View Binding (3) | 2022.09.15 |
---|---|
[Android] android:exported 스토어 업로드 에러 해결 (4) | 2022.09.14 |
[Android] 어플 재시작 방법 (6) | 2022.09.12 |
[Android] IllegalThreadStateException 에러 해결 (5) | 2022.09.06 |
[Android] 안드로이드 PC RS232 사용법 (CD-RK3288-01) (2) | 2022.09.06 |
댓글