Qt图片与Base64之间的编解码

#include 
#include 
#include 
#include 
#include 
#include 

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;
}

你可能感兴趣的:(qt,qt5)