当前位置: 首页 > news >正文

qt QImage详解

1、概述

QImage是Qt框架中用于处理图像数据的一个核心类。与QPixmap不同,QImage是在内存中直接存储图像像素数据的,这使得它适用于需要直接访问和修改像素的应用场景,比如图像处理算法、图像绘制以及图像分析等。QImage支持多种图像格式,包括RGB、ARGB、灰度图等,并提供了丰富的API来进行图像的加载、保存、转换和绘制。

2、重要方法
  • QImage(int width, int height, QImage::Format format):构造一个指定宽度、高度和格式的空图像。
  • load(const QString &fileName, const QString &format = QString()):从文件中加载图像。
  • save(const QString &fileName, const QString &format = QString(), int quality = -1):将图像保存到文件中。
  • convertToFormat(QImage::Format format):将QImage转换为指定的格式。
  • pixel(int x, int y):返回图像中指定位置的像素值。
  • setPixel(int x, int y, uint color):设置图像中指定位置的像素值。
  • scanLine(int y):返回指向图像中指定行的扫描线的指针。
  • bits():返回指向图像数据的指针。
  • byteCount():返回图像数据的字节数。
  • copy(const QRect &rect = QRect()) const:复制图像的指定区域。
  • scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation):按指定大小和纵横比缩放图像。
// 加载图像
QImage image(":/res/c.png");
if (image.isNull()) {qWarning() << "Failed to load image.";return -1;
}// 获取图像的宽度和高度
int width = image.width();
int height = image.height();// 修改图像中的像素值(例如,将每个像素的红色分量增加50)
for (int y = 0; y < height; ++y) {for (int x = 0; x < width; ++x) {QColor color = image.pixelColor(x, y);int red = qBound(0, color.red() + 50, 255); // 确保红色分量在0到255之间QColor newColor(red, color.green(), color.blue(), color.alpha());image.setPixelColor(x, y, newColor);}
}// 保存修改后的图像
bool saved = image.save("1.png");
if (!saved) {qWarning() << "Failed to save modified image.";
} else {qDebug() << "Modified image saved successfully.";
}

觉得有帮助的话,打赏一下呗。。

           

http://www.lryc.cn/news/475018.html

相关文章:

  • 数据分析与效果评估的有效方法与实践探讨
  • Langchain调用模型使用FAISS
  • 双向链表的实现
  • Charles简单压力测试
  • MMSegmentation测试阶段推理速度非常慢的一种可能原因
  • 数据结构之链式结构二叉树的实现(初级版)
  • day01-MybatisPlus
  • Postgresql源码(137)执行器参数传递与使用
  • 韩国恋爱游戏:阿西, 美女室友竟然…?百度网盘下载
  • 一个运维牛人对运维规则的10个总结
  • Istio基本概念及部署
  • 基于 Python 的 Django 框架开发的电影推荐系统
  • 离线数仓开发SQL编写和调试的最佳实践(如何又快又好完成任务,学会几条就不用当很辛苦的牛马)
  • PostgreSQL 增量备份:保护你的数据资产
  • 字节青训-寻找最大葫芦
  • el-checkbox勾选一个变成了勾选所有
  • ExpandingCard扩展卡片
  • 移远通信推出八款天线新品,覆盖5G、4G、Wi-Fi和LoRa领域
  • MySQL 9从入门到性能优化-创建触发器
  • UE5 第三人称学习之动画 control rig
  • C++之--初见模板初阶
  • Nature|用于无线监测颅内信号的植入式柔性超声波传感器(柔性传感/健康监测/植入式电子/水凝胶)
  • 【和AI的《趣味》聊天】01 AI:你找茬是吧(
  • “发放父作业单”是“过数”用例里面的内容吗
  • Linux补基础之:网络配置
  • 【flink】之kafka到kafka
  • 微信小程序时间弹窗——年月日时分
  • 杂货 | 每日资讯 | 2024.11.1
  • Genmoai-smol:专为单 GPU 优化的开源 AI 视频生成模型,低显存生成高质量视频
  • RHCE8