【qt】打开图像、保存图像

本文介绍了使用Qt和PyQt在GUI应用程序中实现打开、选择和保存图像文件的方法,包括使用`QFileDialog`进行文件选择,并展示了如何处理加载失败和保存图像到指定路径的操作。
摘要由CSDN通过智能技术生成

c++qt
打开图像

void Widget::on_pushButton_clicked()
{

    QString m_imgPath = QFileDialog::getOpenFileName(this, tr("Open Image"), QCoreApplication::applicationDirPath(), tr("*.png *.jpg"));   //打开图片文件,选择图片

    QImage oriImage;
    QImage enhanceImage;
    if(oriImage.load(m_imgPath))
    {
        qDebug() << "Image loaded successfully!";
    }
    else
    {
        qDebug() << "Failed to load image!";
        return;
    }
}

pyqt
打开图像

    @pyqtSlot()
    def on_btn_input_path_clicked(self):
        input_path, _ = QFileDialog.getOpenFileName(self, "加载图像", "", "Image Files (*.png *.jpg *.tif)")
        if input_path == '':
            return

保存图像

    @pyqtSlot()
    def on_btn_export_img_clicked(self):
        os.makedirs('save_results', exist_ok=True)
        name = os.path.basename(self.input_path).split('.')[0] + '_detect'
        save_path, _ = QFileDialog.getSaveFileName(self, "导出图像", f"{name}",
                                                   "JPEG Files (*.jpg *.jpeg);;PNG Files (*.png);;")
        if save_path:
            self.pixmap.save(save_path)
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Qt中为图片添加水印,可以使用QPainter类在图片上绘制文本或图像。以下是一个示例代码,演示如何在保存图片时添加水印: ```cpp QString filename = "image.jpg"; // 要保存图片文件名 QString watermarkText = "My Watermark"; // 水印文本 QImage image(filename); // 加载图片 // 在图片上绘制水印文本 QPainter painter(&image); painter.setPen(Qt::white); // 设置文本颜色 painter.setFont(QFont("Arial", 16)); // 设置字体 painter.drawText(image.rect(), Qt::AlignBottom|Qt::AlignRight, watermarkText); // 绘制文本 // 保存带水印的图片 if(image.save("watermarked_image.jpg")) { qDebug() << "Image saved with watermark"; } ``` 如果要添加图像水印,可以使用QPixmap类加载水印图像,并使用QPainter在图片上绘制。例如,以下代码演示如何在图片右下角添加水印图像: ```cpp QString filename = "image.jpg"; // 要保存图片文件名 QString watermarkFilename = "watermark.png"; // 水印图像文件名 QImage image(filename); // 加载图片 QPixmap watermark(watermarkFilename); // 加载水印图像 // 在图片上绘制水印图像 QPainter painter(&image); painter.drawPixmap(image.width()-watermark.width(), image.height()-watermark.height(), watermark); // 保存带水印的图片 if(image.save("watermarked_image.jpg")) { qDebug() << "Image saved with watermark"; } ``` 注意,这只是示例代码,实际使用时还需要考虑文本和图像水印的位置、大小、透明度等参数,以及如何处理异常情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值