Cargar QPIXMAP de QByTearray en QT?
-
26-10-2019 - |
Pregunta
Tengo una matriz de bytes con el contenido de una imagen (en PNG/BMP o algún otro formato).
¿Cómo puedo cargarlo en un QPIXMAP?
Solución
bool QPixmap::loadFromData ( const QByteArray & data, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )
El formato aquí es literal de cadenas como "PNG"
o algo similar
QPixmap p;
QByteArray pData;
// fill array with image
if(p.loadFromData(pData,"PNG"))
{
// do something with pixmap
}
Otros consejos
Debe usar el folowing, donde sus bytes están en la variable iMagedata en el formato especificado por el último parámetro:
QPixmap pixmap = QPixmap::fromImage(
QImage(
(unsigned char *) imageData,
image_width,
image_height,
QImage::Format_RGB888
)
);
Use este constructor:
QImage ( const uchar * data, int width, int height, Format format )
Aquí hay más información. Después de eso, puedes usar QPixmap.convertFromImage()
Para crear un PIXMAP.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow