1

私の理解では、各ピクセルは4バイト(a、r、g、b)で表されます。サイズが画像のピクセル数であるbyte[]配列にこれを格納するにはどうすればよいですか。

次のコードは期待どおりに機能します(画像を回転させます)

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;
4

1 に答える 1

0

カメラプレビュー画像の「NV21」表現のデコードについて話している場合、これは、ピクセルごとに1バイトの輝度データを含むブロックと、それに続く2×2ピクセルブロックごとに1つのサンプルを持つカラーデータを含む別のブロックで構成されます。人間の目は色の詳細にあまり敏感ではないため、カラーデータの解像度は輝度よりも低くなります。

この形式を通常のAndroidビットマップ形式のARGBピクセルにデコードするサンプルコードについては、こちらDecodeNV21のルーチンを参照してください。

于 2012-05-21T11:37:27.593 に答える