解码base64中的数据损坏到Qt中的图像

时间:2014-08-30 09:24:16

标签: qt base64

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

    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编码,然后对其进行解码。你能告诉我我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

我已经弄明白我的代码有什么问题。当我打开图像文件时,我使用QIODevice::Text打开模式。但是图像是二进制文件,所以我应该删除QIODevice::Text选项。完成后,代码运行良好。