Загрузить QImage из байтового массива, не зная формата - PullRequest
0 голосов
/ 30 апреля 2019

QImage имеет следующий конструктор:

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

Однако я пытаюсь проанализировать изображения JPEG / PNG, которые уже загружены как байтовый массив. QImage также имеет другие конструкторы, но они принимают уже несжатый байтовый массив значений ARGB.

Есть ли способ создать QImage из непарсированных байтовых данных вместо файла?

1 Ответ

2 голосов
/ 30 апреля 2019

Вы можете создать пустой QImage, а затем использовать QImage::loadFromData(const QByteArray&) без указания формата. QImage попытается прочитать заголовок изображения, чтобы угадать формат файла.

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