YUV420Semi-PlanarからJpegに変換する|Android開発

      2018/08/29

YuvImageクラスを使って、YUV420Semi-PlanarのRAWデータをJpegに変換するサンプルです。
ここでImageFormat.NV21YUV420Semi-Planarになります。

// byte[] data : YUV420SPのRAWデータ 
YuvImage yuvImage = new YuvImage(data, ImageFormat.NV21, WIDTH, HEIGHT, null);
ByteArrayOutputStream baoStream = new ByteArrayOutputStream();
yuvImage.compressToJpeg(new Rect(0, 0, WIDTH, HEIGHT), 100, baoStream);
byte[] byteArray = baoStream.toByteArray();

コンストラクタ

WIDTHHEIGHTには取得した画像のサイズを指定します。

compressToJpeg

出力矩形、圧縮率、出力先(ByteArrayOutputStream)を指定します。
上記サンプルでは元の画像サイズで圧縮無しのデータを取得します。
ByteArrayOutputStream.toByteArray()でJpegデータのbyte配列が取得できます。

 - Android ,