2010-03-01 2 views
8

잘하면이 질문을 쉽게해야합니다. 일련의 작은 비트 맵을 더 큰 비트 맵으로 복사하려고하는데, 픽셀 간격이 없거나 겹치는 일없이 나란히 배열합니다. 예를 들어, 3 제곱 비트 맵을 가지고 있다면, 길고 얇은 하나의 직사각형으로 복사하고 싶습니다. 나는 반대의 작업을 수행하는 방법, 즉 큰 비트 맵에서 작은 비트 맵을 생성하는 방법을 알고 있지만이 방법은 아닙니다. 올바른 명령이 무엇입니까?더 작은 비트 맵을 더 큰 비트 맵으로 복사하는 방법은 무엇입니까?

는 (사람이 호기심이 있다면, 나는 하나의 비트 맵 애니메이션을 처리하기 위해 쓴 일부 코드를 재사용 할 수 있도록이하고 싶어.)

감사합니다!

답변

14

큰 비트 맵용 캔버스를 만든 다음이 비트 맵을 사용하여 작은 비트 맵을 그립니다. 나는 꽤 안드로이드에 익숙하다. 그러나 나는 다음과 같이 추측하고있다.

Bitmap makeBigBitmap(Bitmap srcBmps[]) { 
    Bitmap wideBmp; 
    Canvas wideBmpCanvas; 
    Rect src, dest; 

    // assume all of the src bitmaps are the same height & width 
    wideBmp = Bitmap.createBitmap(srcBmps[0].getWidth() * srcBmps.length, 
     srcBmps[0].getHeight(), srcBitmaps[0].getConfig()); 

    wideBmpCanvas = new Canvas(wideBmp); 

    for (int i = 0; i < srcBmps.length; i++) { 
     src = new Rect(0, 0, srcBmps[i].getWidth(), srcBmps[i].getHeight()); 
     dest = new Rect(src); 
     dest.offset(i * srcBmps[i].getWidth(), 0); 

     wideBmpCanvas.drawBitmap(srcBmps[i], src, dest, null); 
    } 

    return wideBmp; 
} 
+2

아, 그래, 좋은 생각이야. 나는 그것으로 실험 할 것이다. –

+3

실제로, 그것은 잘 작동했습니다. 감사! –

관련 문제