在Qt中,我们想要通过对话框来打开某一个图片,可以通过使用QFileDialog来快速实现,参见以下代码:

QString fileName = QFileDialog::getOpenFileName(this,
tr("Load Image"), "",
tr("Images (*.png *.bmp *.jpg *.tif *.GIF);;All Files (*)"));
if (fileName.isEmpty()) {
return;
}
QImageReader reader(fileName);
const QImage newImage = reader.read();
if (newImage.isNull()) {
QMessageBox::information(this, QGuiApplication::applicationDisplayName(),
tr("Cannot load %1: %2")
.arg(QDir::toNativeSeparators(fileName), reader.errorString()));
return;
}
const QPixmap pix = QPixmap::fromImage(newImage);
ui.imgLable->setPixmap(pix.scaled(size,Qt::IgnoreAspectRatio)));

保存图片可以使用如下代码:

QString fileName = QFileDialog::getSaveFileName(this,
tr("Save Image"), "",
tr("Images (*.png *.bmp *.jpg *.tif *.ppm *.GIF);;All Files (*)"));
if (fileName.isEmpty()) {
return;
}
image0.save(fileName);

类似内容请参见我之前的博客QDialog, QFileDialog 和 QDesktopServices 的使用方法

Qt Load and Save Image Dialog 加载图片对话框的更多相关文章

  1. Qt Load and Save PCL/PLY 加载和保存点云

    Qt可以跟VTK和PCL等其他库联合使用,十分强大,下面的代码展示了如何使用Qt联合PCL库来加载和保存PCL/PLY格式的点云: 通过按钮加载点云: void QMainWindow::on_pb_ ...

  2. Glide加载图片缓存库出现——You cannot start a load for a destroyed activity

    请记住一句话:不要再非主线程里面使用Glide加载图片,如果真的使用了,请把context参数换成getApplicationContext.

  3. Qt QLabel加载图片

    QLabel加载图片 //在对应的控件中显示图片 void qm_img::DisplayImg(cv::Mat imgParam, QLabel *labelParam) { if (!imgPar ...

  4. ImageEdit 加载图片

    从本地加载图片 <dxe:ImageEdit Name="iePortrait" Height="120" Width="100" S ...

  5. QImage与QPixmap加载图片效果(QImage不能拉伸图片,QPixmap默认拉伸图片)

    QImage与QPixmap加载图片 效果 . 分类: QT开发 qtQtQT PixmapTest::PixmapTest(QWidget *parent) : QDialog(parent) {t ...

  6. 【MFC】picture控件 两种有细微差别的动态加载图片方法

    摘自:http://www.jizhuomi.com/software/193.html VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control) 分类标签: 编程入门 ...

  7. Android 实现异步加载图片

    麦洛开通博客以来,有一段时间没有更新博文了.主要是麦洛这段时间因项目开发实在太忙了.今天周六还在公司加班,苦逼程序猿都是这样生活的. 今天在做项目的时候,有一个实现异步加载图片的功能,虽然比较简单但还 ...

  8. Glide 加载图片

    //通过model获取到图片的url,将Url转换成bitmap对象: //设置不保存内存和硬盘缓存, 1 Glide.with(mContext).load(model.getVideoUrl()) ...

  9. ionic懒加载图片

    https://github.com/paveisistemas/ionic-image-lazy-load <script src="lib/ionic/js/ionic-image ...

随机推荐

  1. java 访问 usb

    java 要访问 usb 设备,通常要自己写c/c++代码,然后再用 java 访问这些组件,以达到控制usb设备的目的.但现在有一个开源组件 libusb 帮我们做好了访问usb设备的封装(包括wi ...

  2. 第七篇:创建一个SOUI的Hello World

    从0开始一个SOUI项目 1.环境配置 SOUI项目本质是一个基于Win32窗口的应用程序.因此首先我们可以从Win32窗口应用程序向导创建一个简单的Win32项目. 并在第3页选择“Window应用 ...

  3. iOS沙盒机制的基本操作总结

    每个ios程序都有自己的沙盒(sandBox),ios8之后提供沙盒部分开放 我们可以访问沙盒下的文件夹 文件夹包括: 1,documents:保存应用运行时生成的需要持久化的数据 2.tem:保存临 ...

  4. 【java基础】]IO流

    IO流 概念: 流的概念源于unix中管道(pipe)的概念,在unix中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备,外部文件等 一个流,一定能够会有源和去向(目的地),他 ...

  5. Jmeter之Badboy录制脚本及简化脚本http请求(三)

    测试脚本的精简对于测试来说是一项基础的能力,因为你得看懂一行脚本代表的是什么意思,是怎么运行的,做了什么内容.才能得到对应的测试结果分析. 上一节介绍的代理服务器的录制童鞋们也明白了,有点麻烦,而且不 ...

  6. Oracle注入漏洞

    sqlmap.py -u "http://10.7.82.123:9104/servlet/json" --cookie="JSESSIONID=abcgk26KDf_5 ...

  7. Ubuntu 修改源

    Steps 打开Ubuntu的终端,输入 sudo gedit /etc/apt/sources.list 删掉里边所有旧的内容,把新的源内容贴进去 执行 sudo apt-get update 源 ...

  8. 快速傅里叶变换FFT学习小记

    FFT学得还是有点模糊,原理那些基本还是算有所理解了吧,不过自己推这个推不动. 看的资料主要有这两个: http://blog.miskcoo.com/2015/04/polynomial-multi ...

  9. BZOJ4569 : [Scoi2016]萌萌哒

    建立ST表,每层维护一个并查集. 每个信息可以拆成两条长度为$2$的幂次的区间相等的信息,等价于ST表里两对点的合并. 然后递归合并,一旦发现已经合并过了就退出. 因为一共只会发生$O(n\log n ...

  10. 期待中冷静前行,专家预测2017年VR产业5大发展趋势

    VR在90年代火过一阵后,在2016年迎来了爆发.今年的VR领域,除了Oculus.HTC.索尼等发布的各家硬件,还有许多VR内容争奇斗艳的迸发,但是VR会一直保存热度吗? 事实上,对于科技圈巨头而言 ...