我已经搜索了一段时间,但找不到 android 的 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,根据文档,这意味着位图加载失败。但我不知道为什么。这应该使用默认的 ARGB_8888 格式,其中每个像素有 4 个字节。我以为我已经解决了上面的问题。有什么建议吗?
最佳答案
如果您想按照自己的方式创建原始 Bitmap
,BitmapFactory
不是答案。在 Bitmap
上使用 setPixel()
,或者在 Bitmap
上使用一些 createBitmap()
工厂方法,或者创建一个 Bitmap
支持的 Canvas
并使用 Canvas
操作绘制。
BitmapFactory
用于解码可识别格式的位图,例如 PNG 和 JPEG。
关于android - Android BitmapFactory.decodeByteArray 的正确使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18970572/