RGB565 to RGB24

来源:互联网 发布:matlab合并两个矩阵 编辑:程序博客网 时间:2024/04/29 02:41
//在用QT显示摄想头捕获的图象时用到的
//创建一个QImage对象,用来保存RGB24图象
int x, y, r, g, b, i = 0;
QRgb 
*point;
unsigned 
char *image = get_image(fd, width, height, palette, &size); //从摄像头获取RGB565图象
QImage *img = new QImage; //保存转换后的图象
if(img->create(width, height, depth, 0, QImage:IngoreEndian)
{
        
for(y = 0; y < height; y++)
        
{
                
for(x = 0; x < width; x++)
                
{
                        r 
= ((int)img[i+1& 0xf8>> 3;
                        g 
= (((int)img[i] & 0xe0>> 5| (((int)img[i+1& 0x07<< 3);
                        b 
= (int)img & 0x1f;
                        point 
= (QRgb *)image->scanLine(y) + x;
                        
*point = qRgb(r, g, b);
                        i 
+= 2;
                }

        }

}