Dato un QGraphicsScene
o QGraphicsView
, è possibile creare un file immagine (preferibilmente PNG o JPG)? Se sì, come?Come creare un file immagine da QGraphicsScene/QGraphicsView?
17
A
risposta
20
Non ho provato questo, ma questa è l'idea di come farlo.
È possibile farlo in diversi modi Una forma è la seguente:
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.
L'altro è quello di utilizzare la funzione di rendering QGraphicsScene :: render():
QImage image(fn);
QPainter painter(&image);
painter.setRenderHint(QPainter::Antialiasing);
scene.render(&painter);
image.save("file_name.png")
25
Dopo appena trattare con questo problema, c'è abbastanza miglioramento qui per garantire una nuova risposta:
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 è obsoleto, utilizzare la funzione di rimozione. Ed è possibile utilizzare un 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
Ho testato la soluzione e la soluzione * Petrucio *. Entrambi funzionano, grazie mille. Mi piace di più la tua soluzione :), è più breve. –
Problemi correlati
- 1. Come creare un file zip di più file di immagine
- 2. Emettere un file immagine da un servlet
- 3. ridimensiona immagine da file
- 4. Come creare un file jar da scala
- 5. Come creare un file eseguibile da un file oggetto c?
- 6. Come creare un grande file immagine da molte tessere in java?
- 7. Come posso creare un'immagine PIL da un file in memoria?
- 8. Creare un PEM da un file PPK
- 9. Creare un sommario da un file pdf
- 10. Elixir - Scarica un file (immagine) da un URL
- 11. Come posso creare un file PFX da un Keystore Java?
- 12. Come creare un intervallo di valutazione lazy da un file?
- 13. immagine dati FOM come "Lettera Immagine Riconoscimento Dataset" Come creare da UCI
- 14. Come posso creare un frame YUV422 da un JPEG o altra immagine su Ubuntu
- 15. Come creare un file .pyd?
- 16. Come verificare se un file è un file immagine valido?
- 17. Come creare Haar Cascade (file .xml) da utilizzare in OpenCV?
- 18. Come rispecchiare un file immagine? (2.2+)
- 19. Come creare un oggetto immagine in PIL/Python
- 20. Come posso creare un UIColor da RGBA?
- 21. CSS: visualizzazione di una particolare icona da un file immagine
- 22. Ottieni un'estensione di immagine da un file caricato in Laravel
- 23. Salva tutti i file di immagine da un sito web
- 24. WPF - Come creare un pulsante immagine con modello
- 25. Come creare un file eseguibile autonomo da script Python 3.5?
- 26. Come creare un file PDF da HTML usando PDFBox?
- 27. Come creare un file CSV separato da VBA?
- 28. Come creare un file CSV da Core Data (swift)
- 29. come creare un file jar da Android studio
- 30. Come creare un file DBF da zero in C#?
fantastico! Grazie. ho provato il secondo approccio. l'unica cosa richiesta è che il 'QImage' debba essere inizializzato. – Donotalo