QGraphicsScene
またはQGraphicsView
を指定すると、画像ファイル(PNGまたはJPGが好ましい)を作成できますか?はいの場合、どうですか?QGraphicsScene/QGraphicsViewからイメージファイルを作成するには?
17
A
答えて
20
私はこれを試したことはありませんが、これはどのように行うのかです。
あなたはいくつかの方法で 次のように一つの形があり、これを行うことができます。
QGraphicsView* view = new QGraphicsView(scene,this);
QString fileName = "file_name.png";
QPixmap pixMap = QPixmap::grabWidget(view);
pixMap.save(fileName);
//Uses Qpixmap::grabWidget function to create a pixmap and paints the QGraphicsView inside it.
他のレンダリング機能QGraphicsSceneを使用することです::()をレンダリングする:
QImage image(fn);
QPainter painter(&image);
painter.setRenderHint(QPainter::Antialiasing);
scene.render(&painter);
image.save("file_name.png")
25
だけ扱った後、この問題では、新しい回答を保証するのに十分な改善があります:
scene->clearSelection(); // Selections would also render to the file
scene->setSceneRect(scene->itemsBoundingRect()); // Re-shrink the scene to it's bounding contents
QImage image(scene->sceneRect().size().toSize(), QImage::Format_ARGB32); // Create the image with the exact size of the shrunk scene
image.fill(Qt::transparent); // Start all pixels transparent
QPainter painter(&image);
scene->render(&painter);
image.save("file_name.png");
6
grabWidgetは非推奨です。グラブを使用してください。 QFileDialogを使うことができます。
QString fileName= QFileDialog::getSaveFileName(this, "Save image", QCoreApplication::applicationDirPath(), "BMP Files (*.bmp);;JPEG (*.JPEG);;PNG (*.png)");
if (!fileName.isNull())
{
QPixmap pixMap = this->ui->graphicsView->grab();
pixMap.save(fileName);
}
+1
あなたのソリューションと* Petrucio *ソリューションをテストしました。どちらもうまくいく、ありがとう。私はもっとあなたの解決策が好きです:)、短いです。 –
関連する問題
- 1. イメージファイルから円アイコンを作成する方法は?
- 2. LinuxでQEMUで使用するイメージファイルを作成するには?
- 3. Androidの内部キャッシュディレクトリ内にイメージファイルを作成する方法
- 4. イメージファイルをPHPイメージから取得する
- 5. イメージファイルからMetaDataを取得する
- 6. イメージファイルからピクセル色を読み取るプロットデータ再構成
- 7. SVGを使用して別のイメージファイルを作成する
- 8. イメージファイルを使用してgoog.ui.Buttonのインスタンスを作成する
- 9. MAMPサーバーからイメージファイルを追加するには
- 10. 複数のイメージファイルのzipファイルを作成する方法
- 11. MS AccessのOLEオブジェクトの列からイメージファイルを作成する(C#またはVB.NETを使用)
- 12. イメージファイルのリクエスト情報を取得するasp.netハンドラを作成しますか?
- 13. Pythonでは、いくつかのソースデータからイメージファイルを簡単に生成する方法はありますか?
- 14. io.imsave()は複数のイメージファイルを作成しません
- 15. イメージファイルの一部を含むUIImageViewを作成します。
- 16. イメージファイルを読むにはどうしたらいいですか?
- 17. イメージファイルをDjangoに保存するには?
- 18. イメージファイルをres/drawableからアンドロイドのGallery Appに保存する
- 19. イメージからイメージファイル名を取得PIL
- 20. jsonでtiffイメージファイルをアップロードするには?
- 21. PHPはイメージファイルを作成しますが、リモートサーバではなくローカルのdevでしか動作しません。
- 22. イメージファイルから日付を抽出してlinuxのイメージに出力するには
- 23. KVMを使ってubuntuのイメージファイルからVMを起動するには?
- 24. イメージファイルをあるURLから別のサーバーにダウンロード
- 25. 作業コピーからsvnリポジトリを作成するには?
- 26. モデルからの作成時にupdate_attributeを作成する
- 27. なぜcant私はイメージファイル(jpg)のコピーをテキストエディタまたはCプログラムを使用して作成できますか?
- 28. イメージファイルをクリップボードにロード
- 29. イメージファイルをAWSラムダに渡す
- 30. jarからクラスをロードするカスタムクラスローダーを作成するには?
素晴らしいです!ありがとう。私は第二のアプローチを試みた。必要なのは、 'QImage'を初期化する必要があることだけです。 – Donotalo