Qt中显示图像数据.doc

Qt中显示图像数据.doc

ID:57690233

大小:45.00 KB

页数:2页

时间:2020-09-01

Qt中显示图像数据.doc_第1页
Qt中显示图像数据.doc_第2页
资源描述:

《Qt中显示图像数据.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Qt中显示图像数据一般图像数据都是以RGBRGBRGB……字节流的方式(解码完成后的原始图像流),我说成字节流,那就表明R,G,B的值各占一个字节,在编程时表示的就是unsignedchar*data。       我们先来看一下QT中的QImage对象。在加载data数据前,我们要确定QImage加载图像的空间分配足够大,先假设data是由640*480像素的压缩数据解码得来的,RGB(3字节)是一个像素,故data的应该是640*480*3个字节;比较一下下面两种方式:       QImage img(640,480,QImage:

2、:Format_RGB888);//24位        unsigned char * p_bits=img.bits(); 24位(3字节)一个像素,那么p_bits所得到的空间应该是640*480*3个字节,所以刚刚好一个字节对一个字节。所以我们这样赋值即可:        for(int i=0;i<640*480*3;i+=3)    {        puiBits[i]=data[i];        puiBits[i+1]=data[i+1];        puiBits[i+2]=data[i+2];    }   

3、 //接着就是将img转化成QPixmap填充到QWidget    QPixmap pixmap=QPixmap::fromImage(img);    pixmap=pixmap.scaled(widget->size());    widget->setAutoFillBackground(true);    QPalette palette;    palette.setBrush(widget->backgroundRole(), QBrush(pixmap));    widget->setPalette(palette); 

4、   widget->repaint(); 另一种方式:       unsigned int * p_bits;       QImage img(640,480,QImage::Format_RGB32);       p_bits=(uint*)img.bits();32位(4字节)一个像素,那么p_bits所得到的空间应该是640*480*4个字节,所以不能以上面的方式赋值。有没有注意到,这里用了unsignedint而不用unsignedchar;unsignedint是4个字节的,unsignedchar 是1个字节的,所以我

5、们这里做的事情是将每一个RGB单元放到p_bits的每个unsignedint(4字节)中。因为p_bits是unsignedint指针,所以p_bits[i]就是4个字节。所以应该这样写:              for(int i=0;i<640*480*3;i+=3)    {        p_bits[i/3]=qRgb(data[i],data[i+1],data[i+2]);    }    //接着就是将img转化成QPixmap填充到QWidget    QPixmap pixmap=QPixmap::fromImag

6、e(img);    pixmap=pixmap.scaled(widget->size());    widget->setAutoFillBackground(true);    QPalette palette;    palette.setBrush(widget->backgroundRole(), QBrush(pixmap));    widget->setPalette(palette);    widget->repaint();

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。