将base64解码为Qt中的图像时数据损坏

将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

我编写了一个程序,将base64字符串解码为图像。我写了一个样本:

    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打开模式。删除后,代码运行良好。添加您的解决方案作为答案并选择它作为答案。这是允许的,甚至是建议的,它可能会帮助其他有类似问题的人。