/**
* I420(YU12)转NV21
*/
public static byte[] I420ToNV21(byte[] dataI420, int width, int height) {
byte[] dataNV21 = new byte[width * height * 3 / 2];
int ySize = width * height;
int uSize = ySize / 4;
System.arraycopy(dataI420, 0, dataNV21, 0, ySize);
for (int i = 0; i < uSize; ++i) {
dataNV21[ySize + i * 2] = dataI420[ySize + uSize + i];
dataNV21[ySize + i * 2 + 1] = dataI420[ySize + i];
}
return dataNV21;
}
/**
* NV21数据转换为jpeg数据
*/
public static byte[] NV21ToJPEG(byte[] bytes, int width, int height) {
YuvImage image = new YuvImage(bytes, ImageFormat.NV21, width, height, null); //ImageFormat.NV21 640 480
ByteArrayOutputStream outputSteam = new ByteArrayOutputStream();
image.compressToJpeg(new Rect(0, 0, image.getWidth(), image.getHeight()), 70, outputSteam)
C语言之NV21数据转换为JPG图片
最新推荐文章于 2024-04-01 11:57:22 发布