基于Qt 的可视化图片处理程序 您所在的位置:网站首页 视频中保存照片 基于Qt 的可视化图片处理程序

基于Qt 的可视化图片处理程序

2024-07-02 19:24| 来源: 网络整理| 查看: 265

基于Qt 的可视化图片处理程序——图片的加载与保存 QLabel加载图片方式之一Chapter1 基于Qt 的可视化图片处理程序——图片的加载与保存图片的加载图片加载到 Label完整代码图片的保存保存图片完整代码 Chapter2 Qt使用QImage保存成JPG(PNG)图像到本地Chapter3 QImage类详解(QImage类型转换、QImage类函数及QImage像素操作)Chapter4 Qt QImag图像保存、格式转换Chapter5 Qt中用QLabel显示图片一、直接添加图片二、改变QLabel背景颜色 Chapter6 QLabel中设置背景图片的3种方法Chapter7 QImage与QPixmap区别原因参考网址一、不同平台,依赖、存储不同二、用处分工不同总结 Chapter8 QPixmap与QImage区别前言QPixmap & QImageQBitmapQPicture

在这里插入图片描述

void MainWindow::loadPixmap() { QImage img,image; QPixmap pixmap; LoadPicPath = QFileDialog::getOpenFileName(this,tr("选择图片"),"C://Users//ppqpp//Pictures","Pic Files (*.jpg;*.jeg;*.png;*.gif);;All Files (*);"); img.load(LoadPicPath); image = img.scaled(ui->PicLabel->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); // Qt::KeepAspectRatio 按比例缩放 Qt::SmoothTransformation 缩放不失帧 pixmap = QPixmap::fromImage(image); ui->PicLabel->clear(); ui->PicLabel->setPixmap(pixmap); } QLabel加载图片方式之一 QPixmap pixmap(":/images/abc.jpg"); //通过构造函数载入图片方式 pixmap.load(":/images/ab.jpg"); //另外一种载入图片方式 pixmap.scaled(ui->label1->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); ui->label1->setScaledContents(true); ui->label1->setPixmap(pixmap); Chapter1 基于Qt 的可视化图片处理程序——图片的加载与保存

原文链接

图片的加载

点击按钮选择文件 首先要确定,使用 Qt 中 QFileDialog 库中的 getLoadFile 进行选择文件。

代码如下:

LoadPicPath = QFileDialog::getOpenFileName(this,"选择图片","C://Users//ppqpp//Pictures","Pic Files (*.jpg;*.jeg;*.png;*.gif);;All Files (*);"); // getOpenFile 参数包含窗口的父类,窗口名称,默认选择地址,和要选择的文件格式 // 设置文件扩展名过滤,注意用双分号间隔

运行效果如下: 在这里插入图片描述 在这里插入图片描述

图片加载到 Label

在 Qt 中,我们一种最常用的图片加载方式就是使用 QImage 库,此处我们通过 QImage 加载图片,之后通过加载到 QPixmap 中,最终显示在 Label 上

首先声明 QImage 变量,并加载我们指定路径下的图片:

QImage img; img.load(LoadPicPath); // LoadPicPath 是我们选择的文件的路径及名称

在成功加载图片之后,我们通过将图加载到 QPixmap 上,最终将图片显示在 Label 上:

image = img.scaled(this->ui->PicLabel->size(),Qt::KeepAspectRatio, Qt::SmoothTransformation); /* 首先要按照比例合理缩放图片的大小,并且在缩放的过程中要保证图片不失帧 Qt::KeepAspectRatio 按比例缩放 Qt::SmoothTransformation 缩放不失帧 */ QPixmap pixmap = QPixmap::fromImage(image); // 在pixmap中加载图片 this->ui->PicLabel->setPixmap(pixmap) // 将图片显示到 Label 中

运行效果如下: 在这里插入图片描述

完整代码 void MainWindow::Load(){ // 加载图片 QImage img; img.load(LoadPicPath); w_initial = img.width(); h_initial = img.height(); image = img.scaled(this->ui->PicLabel->size(),Qt::KeepAspectRatio, Qt::SmoothTransformation); pixmap = QPixmap::fromImage(image); // Qt::KeepAspectRatio 按比例缩放 Qt::SmoothTransformation 缩放不失帧 this->ui->PicLabel->clear(); this->ui->PicLabel->setPixmap(pixmap); this->getpixel(); } void MainWindow::on_actionLoadPic_triggered() // 点击事件 { if(LoadPicPath == ""){ if_load_save = false; } else{ qDebug() // this->init_all(); this->Load(); } } 图片的保存

点击按钮保存路径 与加载图片的方法一致,使用 getSaveFile 函数选择要保存图片的路径:

MainWindow::SavePicPath = QFileDialog::getSaveFileName(this,"C://Users//ppqpp//Pictures",MainWindow::LoadPicPath,"Pic Files (*);");

运行效果如下: 在这里插入图片描述 在这里插入图片描述

保存图片

在保存图片之前,我们需要先提取要进行保存的目标图片,通过一种类似于截屏的方式 pixmap()->toImage() 对图片进行提取,然后缩放到原来的大小,最后进行保存

代码如下:

QImage img = this->ui->PicLabel->pixmap()->toImage().scaled(w_initial,h_initial,Qt::KeepAspectRatio, Qt::SmoothTransformation); img.save(SavePicPath); 完整代码 void SaveDialog::on_pushButton_clicked() { MainWindow::SavePicPath = QFileDialog::getSaveFileName(this,"C://Users//ppqpp//Pictures",MainWindow::LoadPicPath,"Pic Files (*);"); this->ui->PathEdit->setText(MainWindow::SavePicPath); } void SaveDialog::on_SaveButton_clicked() { qDebug() qDebug()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有