QImage类

article/2025/10/19 5:32:58

QImage类提供了一个硬件无关的图像表示方法,该图像可以逐像素被访问和用于画图设备。

Qt提供了QImage、QPixmap、QBitmap和QPicture四种图像操作类。QImage类主要用于I/O和直接逐像素访问、操作;QPixmap主要用于在屏幕中显示图像;QBitmap是一个基于方便考虑继承自QPixmap的提供1bit深度二值图像的类;QPicture是一个可以记录和响应QPainter类命令的画图设备。

QImage继承自QPaintDevice,QPainter类可以被用来直接在图像上进行画操作。

QImage类支持QImage::Format枚举变量描述的多种图像类型,包括8-bit, 32-bit 和 alpha-blended images

QImage 提供很多可以用于获取图像信息和进行图像变换的函数。

1。读写图像

QImage有多种读取图像的方法。图像文件可以在生成QImage对象的过程中或者在之后用load和loadFromData方法读取,也可以用静态方法fromData利用给定的数据构造。读取的图像可以是存储在磁盘中或某个嵌入式应用程序的资源。

save方法可以用来保存QImage对象。

2。图像信息

QImage类提供了很多用于获取图像信息的方法。

如size、width、height、dotsPerMeterX、dotsPerMeterY、pixel、text、depth

3。像素赋值操作

1).32-bit图像

用qRgb或qRgba方法设置一个颜色值,再用sexPixel将相应像素设置为相应颜色

2).8-bit和1-bit二值图像

每一个像素的值是color table List中的一个索引,因此像素的值只能被改成一个在color table List中已经定义的值。如果想往color table List中加入新的值,可以用setColor方法。

4。图像格式

QImage中的每一个像素由一个整数表示,这个整数的大小取决于不同的图像格式。

8-bit图像的每一个像素的值是color table List中的一个索引,32-bit每一个像素拥有一个自己的rgb值(RGB、ARGB、premultiplied ARGB)

图像的格式可以用format方法得到,convertToFormat方法可以用来将一种格式的图像转换为另外一种,allGray和isGrayscale方法可以用来检查一个彩色图像是否可以被安全转换为灰度图像。

5。图像变换

mirrored、scaled、rgbSwapped、scaledToWidth、scaledToHeight、transformed...

 

QImage显示图片

qt中提供的QImage类是一个与硬件设备独立无关的图像表达结构,它可以直接操作图像中的像素数据。

QImage继承于QPintDevice类,所以QImage可以用QPainter类来画图。

QImage支持的图像格式及读写权限(qt文档中拖出来的)

QImage绘图:

主要就是重写窗口平台的虚函数:void paintEvent(QPaintEvent *event);
void paintEvent(QPaintEvent *event)
{
QImage image;
image.load("test.jpg");     //用QImage导入图片

QPainter draw(this);        //创建QPainter,将指针传入该设备

QRect rect(0,0,this->width(),this->height());  //创建绘图区域

draw.drawImage(rect,image);                    //绘图,drawImage有很多重载函数,可根据自己的需要调用相应函数   
}


http://chatgpt.dhexx.cn/article/FBAVGZM9.shtml

相关文章

Qt使用QImage保存成JPG(PNG)图像到本地

一、QImage类简介 QImage提供了一个与硬件无关的图像表示方法,允许直接访问像素数据,可用作绘图设备。QImage类支持QImage::Format、enum描述的多种图像格式。包括8-bit, 32-bit 和alpha混合图像QImage 提供很多可以用于获取图像信息和进行图像变换的函…

QImage

一、描述 QImage 类提供了一种独立于硬件的图像表示,允许直接访问像素数据,并且可以用作绘图设备。 QImage 是为 I/O 和直接像素访问和操作而设计和优化的, 因为 QImage 是 QPaintDevice 的子类,所以 QPainter 可用于直接在图像…

图像处理 QImage

在Qt中有四种处理图像的方法: QImage :使用I/O ,可以对像素进行处理QPixmap:主要用在屏幕的显示QBitmap: QPixmap的子类,处理颜色深度,只能显示黑白两种颜色,用于遮罩QPicture&…

QImage的用法

QImage提供了几种加载图像文件的方法: (1)构造QImage对象 Image myImage1 QImage(filename); 根据文件名打开图像 支持的图片格式是: (2)QImage(uchar *data, int width, int height, Format format …) 用…

QImage使用说明

详细描述 QImage类提供独立于硬件的图像表示,允许直接访问像素数据,并可用作绘制设备。 Qt提供了四个用于处理图像数据的类:QImage、QPixmap、QBitmap和QPicture。QImage针对I/O、直接像素访问和操作进行了设计和优化,而QPixmap…

QImage类详解(QImage类型转换、QImage类函数及QImage像素操作)

QImage类(QImage类型转换、QImage类函数及QImage像素操作) 打开Qt帮助文档,会看到有关于QImage的描述如下:The QImage class provides a hardware-independent image representation that allows direct access to the pixel dat…

J1939 协议

J1939 协议简介 J1939协议是基于CAN 2.0B所发展的出来的,基于CAN 的物理层。主要用于commercial vehicle的通信。J1939的主要目的是制定统一的上层application诊断的信息。 J1939的最大特点是定义了PGN(Parameter Group Number). 大多数的PGN是8个字节…

SAE J1939学习笔记(三)

J1939故障代码种类 J1939 由几个不同的诊断信息: –诊断信息 1 - DM1 – 现行故障代码 –诊断信息 2 - DM2 – 非现行故障代码 –诊断信息 3 - DM3 – 清除非现行故障代码 通常地,用户会用 DM1 信息来读取现行故障码。 DM1 信息是 PGN 65226 or FECA h…

新功能发布—TSMaster如何实现J1939多帧报文收发

前言 众所周知,J1939协议是由美国汽车工程师协会(SAE)定义的一组标准。J1939标准用于卡车、公共汽车和移动液压等重型车辆。如今大多数车辆都通过CAN进行ECU通信。但是CAN总线仅仅是提供了通信的基础(就像是电话)&…

CAN协议 J1939

转自:http://blog.sina.com.cn/s/blog_bf97bd7e0102wl2y.html 这几天在公司看了SAE推行的 J1939标准(SAE:美国汽车工程协会),这里整理下学习要点,主要包含以下几个协议: 物理层 SAE J1939-11…

J1939协议与CAN2.0对应关系图表

SAE J1939 消息帧格式定义与CAN 2.0B帧格式对应关系 J1939应用层协议详细描述了用于J1939网络的每个参数,包括其数据长度、数据类型、分辨率、范围及参考标签,并为每个参数分配了一个编号(SPN)。由于J1939协议是以协议数据单元&am…

Python实现CAN总线J1939报文接收、发送

前言 J1939协议是由美国汽车工程师协会(SAE) (SAE协会简介)定义的一组标准。J1939标准用于卡车、公共汽车和移动液压等重型车辆。在许多方面,J1939标准类似于旧版J1708和J1587标准,但J1939标准协议建立在CAN(控制器区域…

J1939标准概述【小白入门】

文章目录 J1939标准概述:J1939/11物理层J1939/13板外诊断连接器J1939/21数据链路层J1939/31网络层J1939/71车辆应用层J1939/73应用层-诊断层J1939/81网络管理总结 J1939标准概述: J1939由下列子标准组成: J1939 – 串行控制和通信车辆网络…

J1939-21数据链路层多帧协议PDU解析

一、协议数据单元(PDU) P 是优先级,R 是保留位,DP 是数据页,PF 是PDU 格式,PS 是特定PDU,SA 是源地址 优先级(P):这三位仅在总线传输中用来优化消息延迟&…

CAN总线的特点及J1939协议通信原理、内容和应用

众多国际知名汽车公司早在20世纪80年代就积极致力于汽车网络技术的研究及应用。迄今已有多种网络标准,如专门用于货车和客车上的SAE的J1939、德国大众的ABUS、博世的CAN、美国商用机器的AutoCAN、ISO的VAN、马自达的PALMNET等。 在我国的轿车中已基本具有电子控制和…

IPEmotion采集J1939协议信号

一 背景 由于商用车相对于乘用车更注重实用性,功能也较单一,且具有产量小的特点,因此在设计开发时需要进行约束,以更大程度实现软硬件的复用和成本的降低,在此需求下J1939协议便随之产生了。 J1939协议是由美国汽车工…

SAE J1939协议读取车辆故障码

基于SAE J1939协议的车辆,默认开启数据广播。当有故障码时,也会按照故障码的格式进行广播。 此处基于外设主动:读取故障码个数->读取故障码->故障码解析 这个步骤来讲,如果被动接收故障码广播,如下解析也适用。 …

车用总线技术 | J1939协议实用指南与J1939数据记录方案

“没错,这是一份SAE J1939协议的简单、实用指南。”—虹科 开篇:在这篇介绍中,我们介绍了J1939协议的基本知识,其中包括PGN和SPN。因为这是一篇偏向应用的简介,所以您还将会学习到如何通过DBC文件解码J1939数据、如何…

SAE J1939协议学习笔记

引用百度百科: SAE J1939(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,用于为中重型道路车辆上电子部件间的通讯提供标准的体系结构。它由“卡车与大型客车电气与电子委员会”(Track &am…

J1939学习(二)

PDU 应用或网络层提供被同化为协议数据单元(PDU)的信息串。PDU提供了一个框架,用于组织对发送的每个CAN数据帧至关重要的信息。SAE J1939 PDU由七个字段组成:(1)P、(2)EDP、&#x…