example qt qpixmap

qt - example - ¿Cómo guardar un objeto QPixmap en un archivo?



qpixmap example (1)

Ese me pareció un largo camino para hacerlo (pero su comentario lo explica mejor):

Para la escritura:

QFile file("yourFile.png"); file.open(QIODevice::WriteOnly); pixmap.save(&file, "PNG");

Para leer:

QPixmap pixmap; pixmap.load("yourFile.png");

QBuffer es excelente cuando necesita un QIODevice y desea mantenerlo en la memoria, pero si realmente va a salir al disco, es un paso intermedio innecesario.

EDITAR:

Para escribir pixmaps, y otras cosas, en un solo archivo, le recomiendo que use QDataStream .

Para la escritura:

QFile file("outfile.dat"); file.open(QIODevice::WriteOnly); QDataStream out(&file); out << QString("almost any qt value object") << yourQPixMap << yourQList /* << etc. */;

Entonces, puedes hacer lo mismo para leer:

QFile file("infile.dat"); file.open(QIODevice::ReadOnly); QDataStream in(&file); in >> firstQString >> yourQPixmap >> yourList /* >> etc. */;

Deberá asegurarse de leer en los mismos objetos que los escribió. Para evitar futuros problemas de compatibilidad, configure la versión QDataStream explícitamente.

Tengo problemas para leer y escribir datos de QByteArray en un archivo.

Mi objetivo es guardar los datos de QPixmap en un QByteArray y guardar ese QByteArray en un archivo (con la capacidad de leer este QByteArray de nuevo en el archivo y en un QPixmap). Quiero usar el siguiente código de la documentación de QPixmap:

QPixmap pixmap(<image path>); QByteArray bytes; QBuffer buffer(&bytes); buffer.open(QIODevice::WriteOnly); pixmap.save(&buffer, "PNG"); // writes pixmap into bytes in PNG format

Después de escribir el búfer en un archivo, quiero poder recuperar el QByteArray y volver a cargarlo en un QPixmap usando la función QPixmap :: loadFromData ().

Déjeme saber si se necesita alguna aclaración adicional (también estoy abierto a enfoques alternativos, ¡solo necesito poder leer y escribir el QPixmap en un archivo! :));