Qt打开,保存,另存为图片

Qt打开一张图片并显示在QLabel控件中:

    QString filename=QFileDialog::getOpenFileName(this,tr("选择图像"),"",tr("Images (*.png *.bmp *.jpg)"));
    if(filename.isEmpty())
        return;
    else
    {
        QImage img;
        if(!(img.load(filename))) //加载图像
        {
            QMessageBox::information(this, tr("打开图像失败"),tr("打开图像失败!"));
            return;
        }
        ui->label->setPixmap(QPixmap::fromImage(img.scaled(ui->label->size())));
    }

Qt截取QLabel控件上的内容,并另存为:

    QString filename1 = QFileDialog::getSaveFileName(this,tr("Save Image"),"",tr("Images (*.png *.bmp *.jpg)")); //选择路径
    QScreen *screen = QGuiApplication::primaryScreen();
    screen->grabWindow(ui->label->winId()).save(filename1);
Qt利用OpenCV的imwrite函数另存为图片:

    Mat img = imread("D:/1.jpg",1);
    filename = QFileDialog::getSaveFileName(this,tr("Save Image"),"",tr("Images (*.png *.bmp *.jpg)")); //选择路径
    string fileAsSave = filename.toStdString();
    imwrite(fileAsSave,img);
另存为时,图片的格式写全,比如:写成img.jpg而不是img。


  • 7
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现Qt中的文本文件打开、新建、保存以及另存为功能,可以使用QFileDialog和QTextStream类。 1. 打开文本文件: ```cpp QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", tr("Text Files (*.txt)")); if(fileName != ""){ QFile file(fileName); if(!file.open(QIODevice::ReadOnly)){ QMessageBox::critical(this, tr("Error"), tr("Could not open file")); return; } QTextStream in(&file); QString text = in.readAll(); file.close(); // 在文本编辑器中显示打开的文本内容 ui->textEdit->setText(text); } ``` 2. 新建文本文件: ```cpp ui->textEdit->clear(); currentFile.clear(); ``` 3. 保存文本文件: ```cpp if(currentFile.isEmpty()){ // 如果当前文件名为空,则调用另存为功能 QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), "", tr("Text Files (*.txt)")); if(fileName == ""){ return; } currentFile = fileName; } QFile file(currentFile); if(!file.open(QIODevice::WriteOnly)){ QMessageBox::critical(this, tr("Error"), tr("Could not save file")); return; } QTextStream out(&file); out << ui->textEdit->toPlainText(); file.close(); ``` 4. 另存为文本文件: ```cpp QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), "", tr("Text Files (*.txt)")); if(fileName == ""){ return; } currentFile = fileName; QFile file(currentFile); if(!file.open(QIODevice::WriteOnly)){ QMessageBox::critical(this, tr("Error"), tr("Could not save file")); return; } QTextStream out(&file); out << ui->textEdit->toPlainText(); file.close(); ``` 以上是基本的实现方式,可以根据自己的需要进行修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值