image打开rgb16 qt_QT中显示图像数据

一般图像数据都是以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();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开启chrome默认支持ipv6

在快捷方式后面的属性后面输入 --enable-ipv6 以下为转载&#xff1a; [转载]chrome开启或关闭IPV6方法 (2012-05-27 17:54:06) 转载▼ 标签&#xff1a; 转载 分类&#xff1a; 技术 原文地址&#xff1a;chrome开启或关闭IPV6方法作者&#xff1a;余鲲涛 chrome和firefox都是…

Nginx安装部署

转&#xff1a;http://www.cnblogs.com/zhuhongbao/archive/2013/06/04/3118061.html Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开…

android ble 连续读写,Android BLE实现对蓝牙的读写

【实例简介】通过修改官方的demo实现对蓝牙的读写操作&#xff0c;详细http://blog.csdn.net/chenfengdejuanlian/article/details/45787123【实例截图】【核心代码】BluetoothLe_demo0└── BluetoothLe_demo0├── AndroidManifest.xml├── bin│ ├── AndroidManife…

一分钟经理人

原创2016-12-0858沈剑 零、缘起近期公司再做管理者培训&#xff0c;偶老大推荐了一本薄薄的《一分钟经理人》&#xff0c;斯宾塞.约翰逊&#xff0c;花了1小时读完有感&#xff0c;沉淀一篇阅读笔记&#xff0c;故有此文。一、前言常见经理人有两类&#xff1a;&#xff08;1&a…

python写机器人程序_用Python写的一个多线程机器人聊天程序

本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows)。后来发现实现起来特别麻烦&#xff0c; 就想到python。听说这家伙在什么地方都能发挥作用。所以想用python来做通讯模块。。。所以主要学习pythonn的多线程和tcp连接。但是没有用过python&#xff0c; 所有在学习…

[转] 前端中的MVC

MVC是一种设计模式&#xff0c;它将应用划分为3个部分&#xff1a;数据&#xff08;模型&#xff09;、展现层&#xff08;视图&#xff09;和用户交互&#xff08;控制器&#xff09;。其中&#xff1a; M - MODEL&#xff08;模型&#xff09; V - VIEW&#xff08;视图&…

ipoo3可以用鸿蒙,iqooneo3支持无线充电吗_iqooneo3可以无线充电吗

iqoo neo3在不高的价格上还保证了自己的品质&#xff0c;有很高的性能&#xff0c;很不错的屏幕。那么这款手机可以支持无线充电吗&#xff1f;小编为大家介绍关于iqoo neo3的充电方面。1.iqoo neo3可以支持无线充电吗iQOO Neo3 配备了 44W 超级闪充&#xff0c;属于小刀&#…

红帽Linux故障定位技术详解与实例(1)

红帽Linux故障定位技术详解与实例(1) 2011-09-28 14:26 圈儿 BEAREYES.COM 我要评论(0) 字号&#xff1a;T | T在线故障定位就是在故障发生时, 故障所处的操作系统环境仍然可以访问&#xff0c;故障处理人员可通过console, ssh等方式登录到操作系统上&#xff0c;在shell上执行…

u2020 华为_华为5G网管U2020常用MML命令(很实用)

激活小区ACT NRCELL:;ACT NRDUCELL:;去激活小区DEA NRCELL:;DEA NRDUCELL:;查询小区静态信息LST NRCELL:;LST NRDUCELL:;查询小区动态信息DSP NRCELL:;DSP NRDUCELL:;修改帧偏置MOD GNODEBPARAM:FRAMEOFFSET70728;修改子帧配比、时隙结构MOD NRDUCELL:NRDUCELLID0,DUPLEXMODECE…

Struts2中过滤器,拦截器,监听器他们之间有什么区别?

1、拦截器是基于java反射机制的&#xff0c;而过滤器是基于函数回调的。2、过滤器依赖与servlet容器&#xff0c;而拦截器不依赖与servlet容器。3、拦截器只能对Action请求起作用&#xff0c;而过滤器则可以对几乎所有请求起作用。4、拦截器可以访问Action上下文、值栈里的对象…

pdf在html中加载不出来,在网页中打开显示PDF

在这里呢&#xff0c;本站仅为大家讲解在网页中显示PDF文件的简单方法&#xff0c;注意&#xff0c;是简单方法&#xff0c;同时&#xff0c;本站已验证过如下的相关代码&#xff0c;测试已通过。当然&#xff0c;有的朋友可能会问&#xff0c;是否能达到像百度文库那样在网页中…

hikaril连接sql2000_hikari连接池解析(版本:HikariCP-2.5.1.jar)

maxLifetime参数maxLifetime参数必须小于数据库的time_wait,默认是1800000&#xff0c;即30分钟。如果设置为0&#xff0c;表示存活时间无限大。如果不等于0且小于30秒则会被重置回30分钟。HikariConfig类中有该参数的校验规则。HikariPool类中&#xff0c;当我们初始化连接池的…

app开发历程————Android程序解析服务器端的JSON格式数据,显示在界面上

上一篇文章写的是服务器端利用Servlet 返回JSON字符串&#xff0c;本文主要是利用android客户端访问服务器端链接&#xff0c;解析JSON格式数据&#xff0c;放到相应的位置上。 首先&#xff0c;android程序的布局文件main.xml 1 <LinearLayout xmlns:android"http://s…

Android IOS WebRTC 音视频开发总结(八十七)-- WebRTC中丢包重传NACK实现分析

Android IOS WebRTC 音视频开发总结&#xff08;八十七&#xff09;-- WebRTC中丢包重传NACK实现分析 本文主要介绍WebRTC中丢包重传NACK的实现&#xff0c;作者&#xff1a;weizhenwei &#xff0c;文章最早发表在编风网&#xff0c;微信ID&#xff1a;befoio 支持原创&#x…

如何去除TD之间的空隙

table{border-collapse:collapse;}转载于:https://www.cnblogs.com/passer1991/archive/2013/02/27/2935967.html

android切换到上个页面,Android 返回上一个界面刷新数据

有些界面需要返回上一个界面刷刷新数据,再此做个记录.首先startActivityForResult进行Actvity进行跳转,这是跳转前的界面.// 通过 startActivityForResult() 启动 ActivityBIntent intent new Intent(getActivity(), NoticeActivity.class);startActivityForResult(intent, 1)…

composer设置代理_composer 设置代理

Docker registry V2部署私有Docker Registry 搭建 Insecure Registry 修改Registry server上的Docker daemon的配置,为DOCKER_OPTS增加–insecure ...css中的position&colon;relative和absolute 属性语法: position : static | absolute | fixed | relative 取值: static :…

为网格布局图片打造的超炫 CSS 加载动画

今天&#xff0c;我想与大家分享一些专门为网格布局的图像制作的很酷的 CSS 加载动画效果。您可以把这些效果用在你的作品集&#xff0c;博客或任何你想要的网页中。设置很简单。我们使用了下面这些工具库来实现这个效果&#xff1a; Normalize.css 来替代传统的 CSS 复位&…

HTML多选框滚动条,《HTM单选.doc

《HTM单选1. 下面标记中&#xff0c;( )在标记的位置添加一个回车符。【选择一项】A. B. C. D. 2. 要实现以下功能&#xff1a;在网页中插入一个图片joke11.gif,使用者通过单击该图片&#xff0c;连接到joke11.htm上去。下面的HTML代码&#xff0c;( )是正确的。【选择一项】A…

python时间处理模块有哪些_Python模块之时间处理

time 模块>>> import time>>> dir(time)[__doc__, __name__, __package__, accept2dyear, altzone, asctime, clock, ctime, daylight, gmtime, localtime, mktime, sleep, strftime,strptime, struct_time, time, timezone, tzname]包含的变量:timezone -- …