0
我编写了一个程序,将base64字符串解码为图像。我写了一个例子:解码base64中的损坏数据以Qt中的图像
QFile file("./image.jpg");
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
return;
}
QByteArray raw = file.readAll().toBase64();
QImage = image;
image.loadFromData(QByteArray::fromBase64(raw), "JPG");
image.save("output.jpg", "JPG");
程序的输出是:
Corrupt JPEG data: 65 extraneous bytes before marker 0xc0 Quantization table 0x01 was not defined
我无法找到与谷歌非常有用。我只读图像文件,并用base64编码,然后解码。你能告诉我我的代码有什么问题吗?
对不起,我弄清楚我的代码有什么问题。当我打开图像文件时,我使用'QIODevice :: Text'打开模式。我删除它后代码运行良好。 – stamaimer 2014-08-30 12:46:02
添加您的解决方案作为答案,并选择它作为答案。这是允许的,甚至是推荐的,它可能会帮助其他类似问题的人。 – RobbieE 2014-08-31 09:20:53