안녕하세요.
저는 지금 비트맵을 여러장 겹쳐서 한 이미지로 합성하는 작업을 진행하고 있습니다.
캔버스에 투명 bitmap 이미지들을 계속 붙이는 방법으로 시도중인데 속도가 너무 느리네요..
혹시 최적화 방법이나.. 다른 방법이 있는지 궁금합니다.
혹시 모르니 코드를 첨부하도록 하곘습니다. 코드는 다음과 같습니다.
int a= R.drawable.a;
int b= R.drawable.b;
int c= R.drawable.c;
final Integer[] arrays = {a,b,c};
for (int v : setArrays ) {
bitmapArray.add(v);
}
Bitmap map = BitmapFactory.decodeResource(getResources(), R.drawable.mapjpg);
image = (ImageView) findViewById(R.id.imageView);
Bitmap b = overlayMark(map, bitmapArray, 0, 0);
image.setImageBitmap(b);
// 이부분 참고하시면 될거 같습니다.
private Bitmap overlayMark(Bitmap baseBmp, final ArrayList<Integer> array, int distanceLeft, int distanceTop) {
Bitmap resultBmp = Bitmap.createBitmap(
baseBmp.getWidth() + distanceLeft,
baseBmp.getHeight() + distanceTop,
baseBmp.getConfig());
final Canvas canvas = new Canvas(resultBmp);
canvas.drawBitmap(baseBmp, distanceLeft, distanceTop, null);
for (int i : array) {
canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), i), 0, 0, null);
}
return resultBmp;
}