Qt与mysql数据库的读写图片的简单操作

1.mysql数据库的表里面的某个存放图片的字段设置为blob【可变二进制数据类型】

2.写进去

        filePath = QFileDialog::getOpenFileName(this,"选择图片",".","Image File(*.png *.jpg *.jpeg *.bbmp)");

        QFileInfo info(filePath);
        fileName = info.fileName();

        //主要部分
        if(filePath.isEmpty())
            return;
        imagePic.load(filePath);
        QByteArray picData;
        QBuffer buffer(&picData);                    //相当于缓冲区【我也不太懂】
        buffer.open(QIODevice::WriteOnly);
        imagePic.save(&buffer,"jpg");
        QVariant var(picData);

        //往表里写数据【查了下网上推荐这种传参写法,有兴趣的自己百度下】
        QString sqlCmd = "insert into namePic(name,picture) values(:name,:picture)";
        query.prepare(sqlCmd);
        query.bindValue(":name",fileName);
        query.bindValue(":picture",var);
        if(!query.exec()){
            QMessageBox::information(0,QObject::tr("提示"),"照片写入失败");
        }else{
            qDebug()<<"照片写入成功";

        }

3.读出来

        QString sqlCmd = QString("select picture from namePic where name='%1'").arg(name);
        bool flag = query.exec(sqlCmd);
        if(flag){
            query.next();
            QPixmap photo,scaledPhoto;
            photo.loadFromData(query.value(0).toByteArray(),"jpg");
            scaledPhoto = photo.scaled(ui->labelPic->width(),ui->labelPic->height());        //按比例设置图片大小
            ui->labelPic->setPixmap(scaledPhoto);
        }

效果:

 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值