どのように保存しQPixmapオブジェクトファイルとは何ですか?

StackOverflow https://stackoverflow.com/questions/2430877

  •  19-09-2019
  •  | 
  •  

質問

うまく読み書きQByteArrayデータをファイルです。

私の目標は、保存QPixmapデータQByteArray、保存することQByteArrayるファイルの読み取るこQByteArrayからのファイルへのQPixmap).使いたい以下のコードから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

書き込み後のバッファされるファイルは、こういうことができるように取得するにQByteArray負荷時代に突入したと言われていQPixmapのQPixmap::loadFromData()機能です。

みなさん、そして場合により一層明確化が必要になるだけに開か代替的アプローチとしても、必要な読み書きができるのQPixmapファイル!:));

役に立ちましたか?

解決

のような本当に長い道のりを行う上で最も難しいのでがコメントによってよりよく説明):

書き込み

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

読:

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

QBuffer が必要とする場合、 QIODevice といメモリーはシンプルだが、実際に出かけしてディスクは、その不要な中。

編集:

書pixmaps、その他のものは、単一のファイルを今ご使用になることをお勧め QDataStream.

書き込み

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

そして、いまのために読む:

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

まれるようにする必要がありますの読みは同じオブジェとして書いたんで頂きたいと思います。保存するための自分の将来の互換性頭痛に設定しQDataStream版を明確にした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top