gpt4 book ai didi

java - Android 中的 BitmapFactory null 问题

转载 作者:行者123 更新时间:2023-12-02 08:04:43 26 4
gpt4 key购买 nike

我正在尝试使用 bitmapfactory 创建位图类。我获取 YUV 格式的相机预览图像并手动解码为灰度图像。当我尝试通过 BitmapFactory 创建位图对象时,它返回 null。

        try {
for (int y = 0; y < frameHeight; y++){
for (int x = 0; x < frameWidth; x++){

byte grey = YUVData[y * frameWidth + x];
convertedData[y * stride + 3 * x] = grey;
convertedData[y * stride + 3 * x + 1] = grey;
convertedData[y * stride + 3 * x + 2] = grey;

}
}

Bitmap bitmap =(Bitmap) BitmapFactory.decodeByteArray(convertedData, 0, convertedData.length);

最佳答案

BitmapFactory 用于从使用 JPEG 或 PNG 编码的图像文件创建图像。如果您只是将原始数据扔给它,该函数不知道您正在使用什么编码。 RGB? YUV? 24 位? 32 位?

据我所知,没有本地方法可以从 YUV 数据创建图像,您至少必须先将其转换为 RGB。这是演示它的答案:Getting frames from Video Image in Android .

当然,你可以使用NDK创建一个原生的转换函数,这样会快很多。或者您可以扫描 YUV 转换器的文档,但我在快速扫描中发现的唯一内容是 YuvImage ,它只允许您将其转换为 JPEG 流。

关于java - Android 中的 BitmapFactory null 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8364933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com