今天有一個需求就是需要將圖片轉換為QString,然后在轉回圖片流程就是
圖片->QByteArray->QString->QByteArray->圖片
轉圖片時需要base 64加密,否則灰丟失數據
具體做法如下:
QString str = "./Image/1.png";//已經有的圖片(本地)
QString str1 = "./Image/2.png";//轉換后圖片路徑
圖片->QByteArray
QPixmap pixmap(str);
QByteArray byteArray = QByteArray();
QBuffer buffer(&byteArray);
buffer.open(QIODevice::WriteOnly);
pixmap.save(&buffer,"png",0);
QByteArray->QString
QString str2 = QString(byteArray.toBase64());
QString->QByteArray
QByteArray byteArray = QByteArray::fromBase64(str2.toLocal8Bit();
QByteArray->圖片
QPixmap pix;
if(!pix.loadFromData(byteArray),"png")
{
qDebug() << __FILE__ << __LINE__ <<"轉化失敗!";
}
if (!pix.save(str1))
{
qDebug() << __FILE__ << __LINE__ <<"保存失敗";
}