Загрузить QPixmap из QByteArray в Qt?
У меня есть массив байтов с содержимым изображения (в png/bmp или каком-либо другом формате).
Как я могу загрузить его в QPixmap?
3 ответов
bool QPixmap::loadFromData ( const QByteArray & data, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )
формат здесь строковый литерал, как "PNG"
или что-то подобное
QPixmap p;
QByteArray pData;
// fill array with image
if(p.loadFromData(pData,"PNG"))
{
// do something with pixmap
}
вы должны использовать folowing, где ваши байты находятся в переменной imageData в формате, указанном последним параметром:
QPixmap pixmap = QPixmap::fromImage(
QImage(
(unsigned char *) imageData,
image_width,
image_height,
QImage::Format_RGB888
)
);
использовать этот конструктор:
QImage ( const uchar * data, int width, int height, Format format )
вот больше информации. После этого, вы можете использовать QPixmap.convertFromImage()
для создания pixmap.