Qt图片与Base64之间的编解码

来源:互联网 发布:iptv服务器软件 编辑:程序博客网 时间:2024/05/10 08:49

#include <string>#include <QByteArray>#include <QBuffer>#include <QImage>#include <QPixmap>#include <sstream>
QByteArray MainWindow::Image_To_Base64(QString ImgPath);//参数是图片路径
QPixmap MainWindow::Base64_To_Image(QByteArray bytearray,QString SavePath);//参数1是Base64码, 参数2是转换后的图片保存路径
QByteArray MainWindow::Image_To_Base64(QString ImgPath)
{
    QImage image(ImgPath);
    QByteArray ba;
    QBuffer buf(&ba);
    image.save(&buf,"PNG",20);
    QByteArray hexed = ba.toBase64();
    buf.close();
    return hexed;
}
QPixmap MainWindow::Base64_To_Image(QByteArray bytearray,QString SavePath)
{
    QByteArray Ret_bytearray;
    Ret_bytearray = QByteArray::fromBase64(bytearray);
    QBuffer buffer(&Ret_bytearray);
    buffer.open(QIODevice::WriteOnly);
    QPixmap imageresult;
    imageresult.loadFromData(Ret_bytearray);
    if(SavePath != "")
    {
        qDebug() <<"save" ;
        imageresult.save(SavePath);
    }
    return imageresult;
}

int  main()
{
    QByteArray src = Image_To_Base64("d:/result.png");
    QPixmap dest = Base64_To_Image(src,"e:/result.png");
    //ui->label->setPixmap(dest);//可用Qlabel显示
return 0;
}

原创粉丝点击