Comment enregistrer un objet QPixmap dans un fichier?
Question
Je vais avoir la difficulté à lire et écrire des données dans un fichier QByteArray.
Mon but est d'enregistrer les données dans un QPixmap QByteArray et enregistrer que QByteArray dans un fichier (avec la possibilité de lire ce QByteArray retour à partir du fichier et dans un QPixmap). Je veux utiliser le code suivant de la documentation 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
Après avoir écrit le tampon à un fichier, je veux être en mesure de récupérer le QByteArray et le charger de nouveau dans une QPixmap en utilisant la fonction QPixmap :: loadFromData ().
S'il vous plaît laissez-moi savoir si des éclaircissements supplémentaires sont nécessaires (je suis ouvert à d'autres approches aussi bien, je dois juste être capable de lire et écrire le QPixmap dans un fichier :)!);
La solution
Cela semblait être un moyen très long pour aller à le faire (mais votre commentaire explique mieux):
Par écrit:
QFile file("yourFile.png");
file.open(QIODevice::WriteOnly);
pixmap.save(&file, "PNG");
Pour la lecture:
QPixmap pixmap;
pixmap.load("yourFile.png");
QBuffer
est grande quand vous avez besoin d'un QIODevice
et que vous voulez le garder en mémoire, mais si vous allez réellement sur le disque, il est une étape intermédiaire inutile.
EDIT:
Pour écrire pixmaps, et d'autres choses, à un seul fichier, je vous recommande d'utiliser