Qt QImag图像保存、格式转换

时间:2021-12-19 14:58:02

图像保存
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(默认)使用默认设置。

 GV_QImage.save("ImageSavePath"+".BMP","BMP",);
//1.pictrureName为图片文件的路径,比如:"/home/feng/IMG_0.jpg",需要注意的是路径必须要有权限读写;
//2."JPG"为图片的格式,注意不需要带".";
//3.100指的是图片的质量因数,范围必须在0到100之内或-1,指定0以获取小型压缩文件,指定100表示大型未压缩文件,使用-1(默认值)使用默认设置。

 

图像格式转换

由 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);