将base64解码为Qt中的图像时数据损坏
我编写了一个程序,将base64字符串解码为图像。我写了一个样本:将base64解码为Qt中的图像时数据损坏,qt,base64,Qt,Base64,我编写了一个程序,将base64字符串解码为图像。我写了一个样本: QFile file("./image.jpg"); if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) { return; } QByteArray raw = file.readAll().toBase64(); QImage = image; image.loadFromData(QByt
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");
程序的输出为:
损坏的JPEG数据:标记0xc0之前有65个额外字节
未定义量化表0x01
我在谷歌上找不到有用的东西。我只读取图像文件,用base64编码,然后解码。你能告诉我我的代码出了什么问题吗?我已经知道我的代码出了什么问题。打开图像文件时,我使用QIODevice::Text打开模式。但是图像是一个二进制文件,所以我应该删除QIODevice::Text选项。完成此操作后,代码运行良好。对不起,我已找出代码的错误所在。打开图像文件时,我使用QIODevice::Text打开模式。删除后,代码运行良好。添加您的解决方案作为答案并选择它作为答案。这是允许的,甚至是建议的,它可能会帮助其他有类似问题的人。