为了精简,这里直贴接口代码了,需要封装的同学,自己加点料
#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;
}