在不知道格式的情况下从字节数组加载 QImage

Load QImage from byte array without knowing the format

QImage 具有以下构造函数:

QImage(const QString &fileName, const char *format = nullptr);

但是,我正在尝试解析 JPEG/PNG 已作为字节数组加载的图像。 QImage 也有其他构造函数,但那些构造函数采用已经未压缩的 ARGB 值字节数组。

有没有办法从未解析的字节数据而不是文件创建 QImage

您可以构造一个空的 QImage,然后在不指定格式的情况下使用 QImage::loadFromData(const QByteArray&)QImage 然后会尝试读取图像 header 来猜测文件格式。

QByteArray bytes; //contains image file contents
QImage img;
bool success = img.loadFromData(bytes);