안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요
Bitmap 클래스에 int[ ]로 된 픽셀 데이터를 채워넣어 그림파일을 만들려고 합니다.
Bitmap bm = Bitmap.createBitmap(320, 240, Bitmap.Config.ARGB_8888);
bm.setPixels( PIXEL_DATA, 0, 320, 0, 0, 320, 240);
canvas.drawBitmap(bm, matrix, null);
이와같은 코드로 그림을 그릴 때, 화면상에 아무런 문제 없이 잘 뿌려집니다.
하지만 setPixels 함수 자체가 무거워서, 보다 빠른 속도를 내기 위해서 copyPixelsFromBuffer 를 사용하려고 합니다.
이때, 소스는 다음과 같이 작성하였습니다.
Bitmap bm = Bitmap.createBitmap(320, 240, Bitmap.Config.ARGB_8888);
bm.copyPixelsFromBuffer(IntBuffer.wrap( PIXEL_DATA ));
canvas.drawBitmap(bm, matrix, null);
이렇게 그렸더니 속도는 개선이 되었지만
그림이 퍼렇게 나옵니다. 사람들이 죄다 아바타가 되어 버렸네요;
setPixels를 copyPixelsFromBuffer로 완전 대체할 수 없을까요..?
저걸 쉽게 해결하는 방법이 있으면 좋겠는데.... 전 그냥 하나하나 바꿨습니다.