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 :)!);

Était-ce utile?

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

scroll top