安卓(Android) 怎么将像素的YUV数据(例如从相机(Camera)预览数据)转换为RGB值

2019年10月27日22:45:29安卓(Android) 怎么将像素的YUV数据(例如从相机(Camera)预览数据)转换为RGB值已关闭评论 620 498字阅读1分39秒

1.简介

安卓(Android) 怎么将像素的YUV数据(例如从相机(Camera)预览数据)转换为RGB值?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */



public class Main {
    
    public static void yuvToRgb(byte y, byte u, byte v, int[] rgb) {
        
        
        int yy = (0xff & y) - 16;
        if (yy < 0)
            yy = 0;
        
        int uu = (0xff & u) - 128;
        int vv = (0xff & v) - 128;

        int y1192 = 1192 * yy;
        int red = (y1192 + 1634 * vv) >> 10;
        int green = (y1192 - 833 * vv - 400 * uu) >> 10;
        int blue = (y1192 + 2066 * uu) >> 10;

        if (red < 0)
            red = 0;
        if (red > 255)
            red = 255;
        if (green < 0)
            green = 0;
        if (green > 255)
            green = 255;
        if (blue < 0)
            blue = 0;
        if (blue > 255)
            blue = 255;

        rgb[0] = red;
        rgb[1] = green;
        rgb[2] = blue;
    }
}