Это простая программа, которую я написал некоторое время назад для тестирования png и base64.
Он принимает png, закодированный в base64 от стандартного ввода, показывает его и затем сохраняет его по указанному пути (output.png, если ничего не было указано).
Это не будет работать, если строка base64 не является png.
#include <QtCore>
#include <QApplication>
#include <QImage>
#include <QByteArray>
#include <QTextStream>
#include <QDebug>
#include <QLabel>
int main(int argc, char *argv[]) {
QString filename = "output.png";
if (argc > 1) {
filename = argv[1];
}
QApplication a(argc, argv);
QTextStream stream(stdin);
qDebug() << "reading";
//stream.readAll();
qDebug() << "read complete";
QByteArray base64Data = stream.readAll().toAscii();
QImage image;
qDebug() << base64Data;
image.loadFromData(QByteArray::fromBase64(base64Data), "PNG");
QLabel label(0);
label.setPixmap(QPixmap::fromImage(image));
label.show();
qDebug() << "writing";
image.save(filename, "PNG");
qDebug() << "write complete";
return a.exec();
}