Qt -- QImage使用总结
图像格式转换
由 RGB 格式转换成 BGR 格式
QImage::rgbSwapped()
返回一个QImage,其中所有像素的红色和蓝色组件的值被交换,有效地将RGB图像转换为BGR图像。
QImage image(fileName);
QImage bgr = image.rgbSwapped();
将彩色图转换成 灰度图
使用QImage::convertToFormat()函数,
参数选择QImage::Format_Grayscale8(需要Qt5.5以上版本才支持)。
QImage image(fileName);
QImage gray = image.convertToFormat(QImage::Format_Grayscale8);
图像保存
bool QImage::save(const QString &fileName, const char *format = Q_NULLPTR, int quality = -1) const
保存格式选择
参数format选择保存的格式,支持格式如下:
BMP(Windows Bitmap)
GIF(Graphic Interchange Format (optional))
JPG(Joint Photographic Experts Group)
JPEG(Joint Photographic Experts Group)
PNG(Portable Network Graphics)
PBM(Portable Bitmap)
PGM(Portable Graymap)
PPM(Portable Pixmap)
XBM(X11 Bitmap)
XPM(X11 Pixmap)
保存质量设置
quality必须在0到100或-1范围内。
指定0来获得小的压缩文件,100用于大的未压缩文件,和-1(默认)使用默认设置。
#include <QDir>
#include <QCoreApplication>
QString appDirPath = QCoreApplication::applicationDirPath();
QString imagePath = appDirPath + "/image.bmp";
imagePath = QDir::toNativeSeparators(imagePath);
image.save(imagePath,"BMP");
获取QImage中的数据
uchar *QImage::bits()
返回一个指向第一个像素数据的指针。这相当于函数scanLine(0)。
注意QImage使用隐式数据共享。这个函数执行共享像素数据的深度拷贝。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!