一般图像数据都是以RGBRGBRGB……字节流的方式(解码完成后的原始图像流),我说成字节流,那就表明R,G,B的值各占一个字节,在编程时表示的就是unsigned char * data。

我们先来看一下QT中的QImage对象。在加载data数据前,我们要确定QImage加载图像的空间分配足够大,先假设data是由640*480像素的压缩数据解码得来的,RGB(3字节)是一个像素,故data的应该是640*480*3个字节;比较一下下面两种方式:

QImage img(640,480,QImage::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];

}

//接着就是将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);

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个字节,所以不能以上面的方式赋值。有没有注意到,这里用了unsigned int而不用unsigned char;unsigned int是4个字节的,unsigned char 是1个字节的,所以我们这里做的事情是将每一个RGB单元放到p_bits的每个unsigned int(4字节)中。因为p_bits是unsigned int指针,所以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::fromImage(img);

pixmap=pixmap.scaled(widget->size());

widget->setAutoFillBackground(true);

QPalette palette;

palette.setBrush(widget->backgroundRole(), QBrush(pixmap));

widget->setPalette(palette);

widget->repaint();

image打开rgb16 qt_QT中显示图像数据相关推荐

  1. c向文件中插入数据_如何把数据写入顺序文件中,VBA代码中Write#语句的利用

    大家好,我们今日继续讲解VBA代码解决方案的第132讲内容:使用 Write #语句把数据写入打开顺序文件中.在上一讲的内容中我们讲了打开一文本文件来写入数据的两种方法有:Append或Output, ...

  2. C++打开文件夹中的多个文件并计算文件中数据的平均值

    两百多个文件,计算平均值,手动3小时,程序运行2分钟..可不能犯蠢手动算了. #include <iostream> #include <sys/types.h> #inclu ...

  3. mysql导入数据dmp文件怎么打开_数据库中dmp文件怎么打开?dmp文件打开详细的处理方法...

    各位有没有观察到很多用户都比较热爱操作win7系统,但是在操作的过程遇到dmp文件怎么打开,以便不被dmp文件怎么打开所烦恼,那dmp文件怎么打开如何解决呢?接下来给各位提供一下dmp文件怎么打开详细 ...

  4. excel打开空白不显示内容 没有隐藏_办公软件操作技巧097:如何隐藏excel表格中没有数据的空白区域...

    在日常工作中,我们编辑好了excel表格以后,有时为了突出显示表格数据内容,或者为了后期编辑表格数据区时不受干扰等原因,可以把表格中没有数据的多余空白区域隐藏起来,如下图一为数据正常显示,图二为隐藏空 ...

  5. r导入txt乱码_R学习笔记系列—R语言从文本和Excel文件中读取数据-excel打开是乱码...

    1.4.1 从文本文件中导入数据 可以使用 read.table() 函数从带分隔符的文本文件中导入数.调用格式为: 这个函数看上去很复杂,但其实很多参数在使用时不用明确指出来,使用默认值可以满足绝大 ...

  6. MFC使用OpenCV在文档窗口中显示图像(支持多图片格式)

    MFC使用OpenCV在文档窗口中显示图像     [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/72550659 在VS ...

  7. 使用python读取excel中的数据,并绘制折线图

    使用python读取excel中的数据,并绘制折线图 做实验的时候采集到一些数据,从文本拷贝到excel,然后从十六进制转换成十进制.图表是分析数据的有利工具,使用python绘制出的图表简明美观.所 ...

  8. 二、用Python从文本文件中解析数据以及用Matplotlib创建散点图(个人笔记)

    1.首先准备数据(数据已上传),从文本文件中解析数据: 数据样本总共包含以下三个特征: >每年获得的飞行常客里程数 >玩视屏游戏所耗费时间百分比 >每周消费的冰淇淋公升数 创建一个名 ...

  9. linux数据库什么意思,Linux系统中的数据库命令是什么

    Linux系统中难免会跟数据库打交道的时候,掌握数据库相关命令是很重要的.下面由学习啦小编为大家整理了Linux系统中数据库命令是什么的相关知识,希望对大家有帮助! Linux系统中的数据库命令是什么 ...

最新文章

  1. Dexposed:Android平台免Root无侵入AOP框架
  2. linux bash shell 常用快捷键
  3. [YTU]_2535 (Problem I: C++复数运算符重载(+与))
  4. C++ 与 G++的区别
  5. boost::fusion::fused_function_object用法的测试程序
  6. 判断一个点是否在三角形内
  7. MongoDB的数据逻辑结构
  8. python统计文件大小_python工具--01.统计当前目录下的文件的大小
  9. 图片处理拓展篇 : 图片转字符画(ascii)
  10. 萤火虫小程序_9.9元起!萤火虫中秋文化节来了!特价门票限量秒杀,手慢无!...
  11. Oracle 中启用 scott 用户 的方法
  12. html做3d游戏进微波,射频微波电路设计.html(350页)-原创力文档
  13. 配置eclipse插件
  14. 实用新型专利撰写模板(自己总结)
  15. python 排队论_建模算法(七)——排队论模型
  16. android nanohttp,在Android中使用NanoHTTPD
  17. 玩手游神助攻:盘点那些具有游戏宏按键,可自定义按键一键多用的模拟器
  18. freeswitch cdr mysql_freeswitch XML CDRS
  19. STM32自定义创建工程模板
  20. 【转自心声】华为眼中管理者的18种惰怠行为

热门文章

  1. 测试MongoDB的自动分片
  2. 跨域(Cross-Domain) AJAX for IE8 and IE9
  3. windows cmd编辑文本
  4. 使用 Log4Net 记录日志
  5. Client does not support authentication protocol requested by server;
  6. 关于js中function(e) e的理解
  7. vue实例属性之el,template,render
  8. iOS 快速实现分页界面的搭建
  9. 1215 - Cannot add foreign key constraint
  10. DELL XPS 9350 无线网卡DW1820A WIN7驱动异常解决