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?

¿Fue útil?

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
scroll top