2013-09-23 4 views
1

지금 몇 시간 동안 검색하고 난 안드로이드의 BitmapFactory.decodeByteArray()적절한 사용은

내가 그것을 사용하는 계획입니다 같은 기능의 작동 방식을 이해하기 위해 찾고에 대한 예제 구현을 찾을 수 없습니다 작업하고있는 프로젝트에 대해서는 간단한 예제 작업을 수행하지 못했습니다. 여기에 내가 가진 코드는 다음과 같습니다.

public Bitmap createRandomBitmap() { 
    int h = 300; 
int w = 300; 

buf = new byte[h * w * 4]; 

for (int i = 0; i < h * w * 4;i++) { 
    buf[i] = 127; 
} 

bmp = BitmapFactory.decodeByteArray(buf, 0, h * w); 
return bmp; 
} 

항상 null을 반환합니다. 이는 설명서에 따라 비트 맵을로드하지 못했음을 의미합니다. 그러나 나는 이유를 알 수 없다. 각 픽셀의 크기가 4 바이트 인 기본 ARGB_8888 형식을 사용해야합니다. 나는 내가 위의 것을 돌 보았다고 생각했다. 어떤 제안?

답변

4

너가 원시인 Bitmap 너를 만들고 싶으면, BitmapFactory은 답이 아니다. BitmapsetPixel()을 사용하거나 BitmapcreateBitmap() 팩토리 메서드의 일부 맛을 넣거나 Bitmap -backed Canvas을 만들고 Canvas 작업을 사용하여 그립니다.

BitmapFactory은 PNG 및 JPEG와 같이 인식 된 형식의 비트 맵을 디코딩하기위한 것입니다.