如何将base 64 html图像转换为二进制

时间:2017-11-01 08:52:26

标签: c++ image qt

我在Windows上使用Qt,我想在此处转换此部分:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />

进入.png文件的本机二进制编码。我已经将iVBORw0KGgoAAAANSUhEUgAAADIA...部分隔离为QString,我唯一的问题是如何将其转换成可以写入文件的QByteArray。具体来说,是一个.png文件。 QByteArray :: fromBase64方法就是我尝试过的,它不起作用。

所以我的代码是:

QDataStream stream(&file);
QByteArray qba;
qba.append(sourcestring);
stream << QByteArray::fromBase64(qba);

sourcestring是源字符串(数据:image / png; base64,部分已删除),file是我写的png文件。

1 个答案:

答案 0 :(得分:3)

您可以这样做:

QString s("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAl...");
QByteArray ba = QByteArray::fromBase64(s.toUtf8());
QImage img = QImage::fromData(ba);
img.save("test.png");