Android Camera Byte []数据,它如何存储32位像素?

时间:2012-05-20 23:49:59

标签: android image-processing

据我所知,每个像素由4个字节(a,r,g,b)表示。如何将其存储在byte []数组中,其中size是图像中的像素数。

以下代码按预期工作(旋转图像)

rotatedData = new byte[data.length];
for (int y = 0; y < height; y++) {
    for (int x = 0; x < width; x++)
        rotatedData[x * height + height - y - 1] = data[x + y * width];
}
data = rotatedData;
int tmp = width; // Here we are swapping, that's the difference to #11
width = height;
height = tmp;

1 个答案:

答案 0 :(得分:0)

如果您正在谈论解码相机预览图像的“NV21”表示,其包含每个像素包含一个字节的亮度数据的块,接着是包含每个2×2的一个样本的颜色数据的另一个块像素块。颜色数据的分辨率低于亮度,因为人眼对颜色细节不太敏感。

对于将此格式解码为常规Android位图格式ARGB像素的示例代码,请参阅DecodeNV21例程here