如下代码 复制可以使用:
调用方式: saveMyBitmap(byteArrayRGBABitmap(bata,width,height))
/** * 截图鱼眼效果 * * @param data yuv视频流数据 * @param width 宽 * @param height 高 * @return */ public Bitmap byteArrayRGBABitmap(byte[] data, int width, int height) { int[] ints = yuvI420toARGB(data, width, height); Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); bmp.setPixels(ints, 0, width, 0, 0, width, height); return bmp; } public static int[] yuvI420toARGB(byte[] yuv, int width, int height) { int iterations = width * height; int[] rgb = new int[iterations]; for (int i = 0; i < iterations; i++) { int nearest = (i / width) / 2 * (width / 2) + (i % width) / 2; int y = yuv[i] & 0x000000ff; int u = yuv[iterations + nearest] & 0x000000ff; int v = yuv[iterations + iterations / 4 + nearest] & 0x000000ff; int b = (int) (y + 1.8556 * (u - 128));