void struct3d::saveImage() { // view->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); // QPixmap pixmap(view->size()); // QPainter painter(&pixmap); // painter.setRenderHint(QPainter::Antialiasing); // view->render(&painter); // pixmap.save(QApplication::applicationDirPath() + "/image.png", "PNG",100); QString fileName = QFileDialog::getSaveFileName((QWidget *) this, tr("Save as:"), "structure.svg", tr("SVG files (*.svg);;All Files (*)")); QRectF rect = scene->sceneRect(); QSvgGenerator generator; generator.setFileName(fileName); generator.setSize(QSize(scene->sceneRect().width(), scene->sceneRect().height())); generator.setViewBox(scene->sceneRect()); generator.setTitle(tr("Title")); generator.setDescription(tr("Description")); QPainter painter; painter.begin(&generator); scene->render(&painter, QRectF(), rect); painter.end(); }
void flowwidget::SaveSVG(std::ostream &data) { std::cerr << "[FlowWidget] Request to export recieved, enumerating nodes for size" << std::endl; int GenMinimum = INT_MAX; int GenExtreme = INT_MIN; std::for_each(XMLHandlr->OrphanNodes.begin(), XMLHandlr->OrphanNodes.end(), [&](std::pair<std::string, FlowNode> nodepair) { NodeSize ns = getNodeSize(QFont("sans-serif", BaseFontSize*nodepair.second.FontSizeMult), QFont("sans-serif", BaseFontSize*nodepair.second.FontSizeMult*1.5), nodepair.second); if (nodepair.second.CenterPosX - (ns.Width/2) < GenMinimum) GenMinimum = nodepair.second.CenterPosX - (ns.Width/2); if (nodepair.second.CenterPosY - (ns.Height/2) < GenMinimum) GenMinimum = nodepair.second.CenterPosY - (ns.Height/2); if (nodepair.second.CenterPosX + (ns.Width/2) > GenExtreme) GenExtreme = nodepair.second.CenterPosX + (ns.Width/2); if (nodepair.second.CenterPosY + (ns.Height/2) > GenExtreme) GenExtreme = nodepair.second.CenterPosY + (ns.Height/2); }); int SVGSize = GenExtreme-GenMinimum; std::cerr << "[FlowWidget] Calculated sheet size of " << SVGSize << std::endl; QSvgGenerator svgen; QIODevice* iodev = new IOStreamBridge(data); svgen.setOutputDevice(iodev); svgen.setSize(QSize(SVGSize, SVGSize)); renderFullTree(&svgen, XMLHandlr, LineColor, BaseFontSize, "", SVGSize, SVGSize, PermaScale, 1, 0, 0); data.flush(); std::cerr << "[FlowWidget] Finished export!" << std::endl; }
void FilterWindow::onBtnExportFilterPlot() { // Open file dialog QDate date; QString fileName = QFileDialog::getSaveFileName(this, "Save filter plot", QString("%1/%2_%3_%4_FilterPlot").arg(QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)).arg(date.currentDate().year()).arg(date.currentDate().month()).arg(date.currentDate().day()), tr("Vector graphic(*.svg);;Images (*.png)")); if(!fileName.isEmpty()) { // Generate screenshot if(fileName.contains(".svg")) { QSvgGenerator svgGen; svgGen.setFileName(fileName); QRectF rect = m_pFilterPlotScene->itemsBoundingRect(); svgGen.setSize(QSize(rect.width(), rect.height())); //svgGen.setViewBox(QRect(0, 0, rect.width(), rect.height())); QPainter painter(&svgGen); m_pFilterPlotScene->render(&painter); } if(fileName.contains(".png")) { m_pFilterPlotScene->setSceneRect(m_pFilterPlotScene->itemsBoundingRect()); // Re-shrink the scene to it's bounding contents QImage image(m_pFilterPlotScene->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); m_pFilterPlotScene->render(&painter); image.save(fileName); } } }
void RealTimeMultiSampleArrayWidget::onMakeScreenshot(const QString& imageType) { // Create file name QString sDate = QDate::currentDate().toString("yyyy_MM_dd"); QString sTime = QTime::currentTime().toString("hh_mm_ss"); if(!QDir("./Screenshots").exists()) { QDir().mkdir("./Screenshots"); } if(imageType.contains("SVG")) { QString fileName = QString("./Screenshots/%1-%2-DataView.svg").arg(sDate).arg(sTime); // Generate screenshot QSvgGenerator svgGen; svgGen.setFileName(fileName); svgGen.setSize(m_pTableView->size()); svgGen.setViewBox(m_pTableView->rect()); m_pTableView->render(&svgGen); } if(imageType.contains("PNG")) { QString fileName = QString("./Screenshots/%1-%2-DataView.png").arg(sDate).arg(sTime); QPixmap pixMap = QPixmap::grabWidget(m_pTableView); pixMap.save(fileName); } }
bool ExportHtml::convertEmf(QByteArray &input, QByteArray &output, QSize size) { QBuffer *outBuf = new QBuffer(&output); QSvgGenerator generator; generator.setOutputDevice(outBuf); generator.setSize(QSize(200, 200)); generator.setTitle("Svg image"); generator.setDescription("This is an svg image that is converted from EMF by Calligra"); Libemf::Parser emfParser; QPainter painter; if (!painter.begin(&generator)) { kDebug(30503) << "Can not open the painter"; return false; } painter.scale(50,50); Libemf::OutputPainterStrategy emfPaintOutput(painter, size, true ); emfParser.setOutput( &emfPaintOutput ); if (!emfParser.load(input)) { kDebug(30503) << "Can not Parse the EMF file"; return false; } painter.end(); return true; }
void ExportWizard::saveSvg() { if (m_ui->svgFilePath->text().isEmpty()) { QMessageBox::warning(this, tr("No file selected !"), tr("You need to choose a file path for saving.")); return; } QString svgFilePath = m_ui->svgFilePath->text(); // get the rendering size QRect svgRect(m_canvas->sceneRect().toRect()); // create the SVG writer QSvgGenerator generator; generator.setFileName(svgFilePath); generator.setSize(svgRect.size()); generator.setResolution(physicalDpiX()); generator.setViewBox(svgRect); generator.setTitle(m_canvas->titleText()); generator.setDescription(tr("Created with %1").arg(QCoreApplication::applicationName() + " " + QCoreApplication::applicationVersion())); // paint over the writer QPainter painter(&generator); painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform, true); m_canvas->renderVisible(&painter, svgRect, svgRect, Qt::IgnoreAspectRatio, !m_ui->svgAsIsBox->isChecked()); painter.end(); }
void MainWindow::printsvg() { // QString fileName(_record->name2display().append(".svg").c_str()); QString fileName("bfviewer.svg"); const QList<QByteArray> imageFormats = QImageWriter::supportedImageFormats(); QStringList filter; filter += "SVG Documents (*.svg)"; fileName = QFileDialog::getSaveFileName( this, "Export File Name", fileName, filter.join(";;"), NULL, QFileDialog::DontConfirmOverwrite); if (!fileName.isEmpty()) { QSvgGenerator generator; QwtPlotRenderer plotrender; generator.setFileName( fileName ); generator.setSize(_gridPlot->size()); plotrender.renderTo(_gridPlot->p,generator); } }
void NativeRenderDialog::exportSVG() { QString s; QFileDialog dlg(NULL, tr("Output filename"), QString("%1/%2.svg").arg(M_PREFS->getworkingdir()).arg(tr("untitled")), tr("SVG files (*.svg)") + "\n" + tr("All Files (*)")); dlg.setFileMode(QFileDialog::AnyFile); dlg.setDefaultSuffix("svg"); dlg.setAcceptMode(QFileDialog::AcceptSave); if (dlg.exec()) { if (dlg.selectedFiles().size()) s = dlg.selectedFiles()[0]; } // QString s = QFileDialog::getSaveFileName(NULL,tr("Output filename"),"",tr("SVG files (*.svg)")); if (s.isNull()) return; QSvgGenerator svgg; QRect theR = thePrinter->pageRect(); theR.moveTo(0, 0); svgg.setSize(theR.size()); svgg.setFileName(s); #if QT_VERSION >= 0x040500 svgg.setViewBox(theR); #endif QPainter P(&svgg); P.setRenderHint(QPainter::Antialiasing); RendererOptions opt = options(); opt.options |= RendererOptions::PrintAllLabels; render(P, theR, opt); }
//! [save SVG] void Window::saveSvg() { QString newPath = QFileDialog::getSaveFileName(this, tr("Save SVG"), path, tr("SVG files (*.svg)")); if (newPath.isEmpty()) return; path = newPath; //![configure SVG generator] QSvgGenerator generator; generator.setFileName(path); generator.setSize(QSize(200, 200)); generator.setViewBox(QRect(0, 0, 200, 200)); generator.setTitle(tr("SVG Generator Example Drawing")); generator.setDescription(tr("An SVG drawing created by the SVG Generator " "Example provided with Qt.")); //![configure SVG generator] //![begin painting] QPainter painter; painter.begin(&generator); //![begin painting] displayWidget->paint(painter); //![end painting] painter.end(); //![end painting] }
bool ExportHtml::convertWmf(QByteArray &input, QByteArray &output, QSizeF size) { QBuffer *outBuf = new QBuffer(&output); QSvgGenerator generator; generator.setOutputDevice(outBuf); generator.setSize(QSize(200, 200)); generator.setTitle("Svg image"); generator.setDescription("This is an svg image that is converted from WMF by Calligra"); QPainter painter; if (!painter.begin(&generator)) { kDebug(30503) << "Can not open the painter"; return false; } painter.scale(50,50); Libwmf::WmfPainterBackend wmfPainter(&painter, size); if (!wmfPainter.load(input)) { kDebug(30503) << "Can not Parse the WMF file"; return false; } // Actually paint the WMF. painter.save(); wmfPainter.play(); painter.restore(); painter.end(); return true; }
bool ExportHtml::convertSvm(QByteArray &input, QByteArray &output, QSize size) { QBuffer *outBuf = new QBuffer(&output); QSvgGenerator generator; generator.setOutputDevice(outBuf); generator.setSize(QSize(200, 200)); generator.setTitle("Svg image"); generator.setDescription("This is an svg image that is converted from svm by Calligra"); Libsvm::SvmParser svmParser; QPainter painter; if (!painter.begin(&generator)) { kDebug(30503) << "Can not open the painter"; return false; } painter.scale(50,50); Libsvm::SvmPainterBackend svmPainterBackend(&painter, size); svmParser.setBackend(&svmPainterBackend); if (!svmParser.parse(input)) { kDebug(30503) << "Can not Parse the Svm file"; return false; } painter.end(); return true; }
void MapWidget::exportSVGToDisplayCluster() { if(g_dcSocket != NULL && svgTmpFile_.open()) { QSvgGenerator generator; generator.setFileName(svgTmpFile_.fileName()); generator.setResolution(90); generator.setSize(QSize(1400, 1200)); generator.setViewBox(viewRect_); QPainter painter; painter.begin(&generator); // set logical coordinates of the render window painter.setWindow(viewRect_.toRect()); // draw a black background painter.setBrush(QBrush(QColor::fromRgbF(0,0,0,1))); painter.drawRect(QRect(QPoint(-107,37), QPoint(-93,25))); renderAll(&painter, false); painter.end(); put_flog(LOG_DEBUG, "wrote %s", svgTmpFile_.fileName().toStdString().c_str()); // now, send it to DisplayCluster sendSVGToDisplayCluster((svgTmpFile_.fileName()).toStdString(), (QString("ExerciseMap-") + QString::number(index_) + ".svg").toStdString()); } }
void ExportImageDialog::exportSvg(const QString &fileName) { SkyMap *map = m_KStars->map(); // export as SVG QSvgGenerator svgGenerator; svgGenerator.setFileName(fileName); svgGenerator.setTitle(i18n("KStars Exported Sky Image")); svgGenerator.setDescription(i18n("KStars Exported Sky Image")); svgGenerator.setSize(QSize(map->width(), map->height())); svgGenerator.setResolution(qMax(map->logicalDpiX(), map->logicalDpiY())); svgGenerator.setViewBox(QRect(0, 0, map->width(), map->height())); SkyQPainter painter(m_KStars, &svgGenerator); painter.begin(); map->exportSkyImage(&painter); if(m_DialogUI->addLegendCheckBox->isChecked()) { addLegend(&painter); } painter.end(); }
void NMGPlotWidget::exportToSVG(QString filePath) { if(!filePath.endsWith(".svg", Qt::CaseInsensitive)) filePath.append(".svg"); QSvgGenerator svgGen; svgGen.setFileName(filePath); svgGen.setSize(QSize(width()-4,height()-4)); QPainter p(&svgGen); render(&p); }
void setupGenerator(QSvgGenerator& generator, QString& templateName) { generator.setFileName(templateName + ".svg"); generator.setSize(QSize(256, 256)); generator.setViewBox(QRectF(0, 0, 256, 256)); generator.setTitle("VPL " + templateName); generator.setDescription("This image was generated by an helper tool part of Aseba, get it at http://thymio.org"); }
void MultiLayer::exportSVG(const QString &fname) { QSvgGenerator generator; generator.setFileName(fname); generator.setSize(canvas->size()); generator.setViewBox(QRect(QPoint(0, 0), generator.size())); generator.setResolution(96); // FIXME hardcored generator.setTitle(this->name()); exportPainter(generator); }
void OpenInfraPlatform::UserInterface::Alignment2DScene::exportToFile(QWidget* parent) { QString filter; QString fn = QFileDialog::getSaveFileName(parent, tr("Save Vertical Alignment as..."), QString(), tr("PNG File (*.png);; JPG File (*.jpg);; PDF File (*.pdf);; SVG File (*.svg)"), &filter); if(fn.isEmpty()) return; if(filter == "PNG File (*.png)" || filter == "JPG File (*.jpg)") { QImage image(sceneRect().size().toSize(), QImage::Format::Format_ARGB32); image.fill(Qt::darkGray); QPainter painter(&image); painter.setRenderHints(QPainter::Antialiasing); render(&painter); image.save(fn); } else { QPrinter printer; QSvgGenerator svgGen; QPaintDevice* device; if(filter == "PDF File (*.pdf)") { printer.setResolution(QPrinter::HighResolution); printer.setPageSize( QPrinter::A4 ); printer.setOrientation( QPrinter::Landscape ); printer.setOutputFormat( QPrinter::PdfFormat ); printer.setOutputFileName(fn); device = &printer; } else if(filter == "SVG File (*.svg)") { QRectF rect = sceneRect(); svgGen.setFileName(fn); svgGen.setSize(QSize(rect.width(),rect.height())); svgGen.setViewBox(QRect(0,0,rect.width(),rect.height())); svgGen.setTitle("Vertical Alignment"); device = &svgGen; } else { return; } QPainter painter(device); configureColors(A2D_DrawState::A2D_Print); render(&painter); configureColors(A2D_DrawState::A2D_Draw); } }
Q_DECL_EXPORT void gammaray_save_widget_to_svg(QWidget *widget, const QString &fileName) { QSvgGenerator svg; svg.setFileName(fileName); svg.setSize(widget->size()); svg.setViewBox(QRect(QPoint(0, 0), widget->size())); QPainter painter(&svg); widget->render(&painter); painter.end(); }
void SceneImageExporter::ExportToSVG(QGraphicsScene *scene, QString fileName) { QSvgGenerator *generator = new QSvgGenerator(); generator->setResolution(72); generator->setSize(QSize( (int)scene->sceneRect().width(), (int)scene->sceneRect().height())); generator->setFileName(fileName); QPainter painter(generator); painter.setBrush(QColor("white")); scene->render(&painter); }
void data_plot::saveSVG() { if (save_file_name.length() > 0) { QSvgGenerator svg; svg.setFileName((save_file_name + ".svg").c_str()); svg.setSize(QSize(600, 450)); myPlot.print(svg); svg.setFileName((save_file_name + "_2.svg").c_str()); } }
void Matrix::exportSVG(const QString& fileName) { int width = numRows(); int height = numCols(); QSvgGenerator svg; svg.setFileName(fileName); svg.setSize(QSize(width, height)); QPainter p(&svg); p.drawImage (QRect(0, 0, width, height), d_matrix_model->renderImage()); p.end(); }
void QGVPage::saveSvg(QString filename) { // TODO: We only have m_vpPage because constructor gets passed a view provider... //NOTE: this makes wrong size pages in low-Rez TechDraw::DrawPage *page( m_vpPage->getDrawPage() ); const QString docName( QString::fromUtf8(page->getDocument()->getName()) ); const QString pageName( QString::fromUtf8(page->getNameInDocument()) ); QString svgDescription = tr("Drawing page: ") + pageName + tr(" exported from FreeCAD document: ") + docName; QSvgGenerator svgGen; svgGen.setFileName(filename); svgGen.setSize(QSize((int) Rez::guiX(page->getPageWidth()), (int) Rez::guiX(page->getPageHeight()))); //expects pixels, gets mm //"By default this property is set to QSize(-1, -1), which indicates that the generator should not output // the width and height attributes of the <svg> element." >> but Inkscape won't read it without size info?? svgGen.setViewBox(QRect(0, 0, Rez::guiX(page->getPageWidth()), Rez::guiX(page->getPageHeight()))); svgGen.setResolution(Rez::guiX(25.4)); // docs say this is DPI. 1dot/mm so 25.4dpi svgGen.setTitle(QObject::tr("FreeCAD SVG Export")); svgGen.setDescription(svgDescription); Gui::Selection().clearSelection(); toggleMarkers(false); //fiddle cache, vertices, frames, etc toggleHatch(false); scene()->update(); viewport()->repaint(); double width = Rez::guiX(page->getPageWidth()); double height = Rez::guiX(page->getPageHeight()); QRectF sourceRect(0.0,-height,width,height); QRectF targetRect; Gui::Selection().clearSelection(); QPainter p; p.begin(&svgGen); scene()->render(&p, targetRect,sourceRect); p.end(); toggleMarkers(true); toggleHatch(true); scene()->update(); viewport()->repaint(); }
// Save the file in the editor to a file at fileName void svgSave(const QString &fileName, NoteEditor *editor) { QSvgGenerator generator; generator.setFileName(fileName); generator.setSize(editor->size()); generator.setViewBox(QRect(0, 0, editor->width(), editor->height())); generator.setTitle("Ink"); generator.setDescription("ThreeRing ink"); QPainter painter; painter.begin(&generator); editor->paint(painter); painter.end(); }
void plotWindow::exportSvg() { QString fileName = QFileDialog::getSaveFileName(plot, "Export to SVG", "plot.svg", "SVG files (*.svg);;All files (*)"); if( !fileName.isEmpty() ) { QRectF sourceRect = plotdata.sceneRect(); QRectF targetRect = QRectF(0.0, 0.0, sourceRect.size().width(), sourceRect.size().height()); QSvgGenerator printer; printer.setFileName(fileName); printer.setSize(sourceRect.size().toSize()); printer.setViewBox(targetRect); QPainter painter(&printer); plotdata.render(&painter, targetRect, sourceRect); painter.end(); } }
void AnimatorView::save() { QString fileName = ""; fileName = QFileDialog::getSaveFileName(); if(fileName == "") { return; } QSvgGenerator svgGen; svgGen.setFileName(fileName); svgGen.setSize(QSize(size())); QPainter painter(&svgGen); painter.setRenderHint(QPainter::Antialiasing); render(&painter); }
void DrawSVG::Write(QString filename) { if(!canvas) return; QSvgGenerator generator; generator.setFileName(filename); generator.setSize(QSize(canvas->width(), canvas->height())); generator.setTitle("MLDemos screenshot"); generator.setDescription("Generated with MLDemos"); QPainter painter; painter.begin(&generator); // we need to paint the different layers: // confidence map // samples + trajectories + reward canvas->PaintStandard(painter, true); if(canvas->bDisplayLearned) { // learned model painter.setBackgroundMode(Qt::TransparentMode); if(classifier) DrawClassificationSamples(canvas, painter, classifier, classifierMulti); if(regressor) drawRegr->DrawModel(canvas, painter, regressor); if(dynamical) drawDyn->DrawModel(canvas, painter, dynamical); if(clusterer) drawClust->DrawModel(canvas, painter, clusterer); if(projector) drawProj->DrawModel(canvas, painter, projector); if(dynamical) { int cnt = 10000; // not too many or it will make unreadable files int steps = 8; VectorsFast(cnt, steps, painter); } if(maximizer) { Maximization(painter); } } if(canvas->bDisplayInfo) { // model info painter.setBackgroundMode(Qt::TransparentMode); if(classifier) drawClass->DrawInfo(canvas, painter, classifier); if(regressor) drawRegr->DrawInfo(canvas, painter, regressor); if(dynamical) drawDyn->DrawInfo(canvas, painter, dynamical); if(clusterer) drawClust->DrawInfo(canvas, painter, clusterer); if(projector) drawProj->DrawInfo(canvas, painter, projector); } painter.end(); }
void Figure2D::exportGraphics(QString fileName) { // Open file save dialog if no filename given if (fileName.isEmpty()) fileName = QFileDialog::getSaveFileName(this, tr("Export VIBes graphics"), QString(), tr("Portable Network Graphics (*.png);;" "Joint Photographic Experts Group (*.jpg *.jpeg);;" "Windows Bitmap (*.bmp);;" "Scalable Vector Graphics (*.svg)")); // Abort if no file selected if (fileName.isEmpty()) return; // Append .png if no extension was specified if (fileName.indexOf('.',1) < 0) // Search '.' from the second character (*nix hidden files start with a dot) fileName.append(".png"); // Save as raster if (fileName.endsWith(".jpg", Qt::CaseInsensitive) || fileName.endsWith(".jpeg", Qt::CaseInsensitive) || fileName.endsWith(".png", Qt::CaseInsensitive) || fileName.endsWith(".bmp", Qt::CaseInsensitive)) { QImage image(this->size()*2, QImage::Format_ARGB32); image.fill(QColor(255,255,255,0)); QPainter painter; painter.begin(&image); this->render(&painter); painter.end(); image.save(fileName); } // Save as vector (SVG) else if (fileName.endsWith(".svg", Qt::CaseInsensitive)) { QSvgGenerator generator; generator.setFileName(fileName); generator.setSize(this->size()); generator.setViewBox(QRect(QPoint(0,0),this->size())); generator.setTitle(tr("VIBes figure")); generator.setDescription(tr("Graphics generated with VIBes on %1.").arg(QDateTime::currentDateTime().toString())); QPainter painter; painter.begin(&generator); this->render(&painter); painter.end(); } }
void Spectrum1DWidget::saveAsImage() { QString file_name = QFileDialog::getSaveFileName(this, "Save File", "", "Raster images *.bmp *.png *.jpg *.gif (*.bmp *.png *.jpg *.gif);;Vector images *.svg (*.svg)"); bool x_visible = x_scrollbar_->isVisible(); bool y_visible = y_scrollbar_->isVisible(); x_scrollbar_->hide(); y_scrollbar_->hide(); if (file_name.contains(".svg", Qt::CaseInsensitive)) // svg vector format { QSvgGenerator generator; generator.setFileName(file_name); generator.setSize(QSize(this->width(), this->height())); generator.setViewBox(QRect(0, 0, this->width() - 1, this->height() - 1)); generator.setTitle(file_name); generator.setDescription("TOPPView generated SVG"); QPainter painter; painter.begin(&generator); painter.save(); painter.translate(QPoint(y_axis_->pos())); y_axis_->paint(&painter, new QPaintEvent(y_axis_->contentsRect())); painter.restore(); painter.save(); painter.translate(QPoint(canvas_->pos())); dynamic_cast<Spectrum1DCanvas*>(canvas_)->paint(&painter, new QPaintEvent(canvas_->contentsRect())); painter.restore(); painter.save(); painter.translate(QPoint(x_axis_->pos())); x_axis_->paint(&painter, new QPaintEvent(x_axis_->contentsRect())); painter.restore(); painter.end(); x_scrollbar_->setVisible(x_visible); y_scrollbar_->setVisible(y_visible); } else // raster graphics formats { QPixmap pixmap = QPixmap::grabWidget(this); x_scrollbar_->setVisible(x_visible); y_scrollbar_->setVisible(y_visible); pixmap.save(file_name); } }
void GraphEditor::image(QPrinter* printer, QString suffix) {if(!scene())return; QRect geo = geometry(); int size = staticData::sizeImage; resize(size+4,size+4); load(true); qApp->processEvents(); int rtt; QList<QGraphicsItem *> list = gwp->canvas->items(); for(QList<QGraphicsItem *>::Iterator it=list.begin();it!=list.end(); ++it) {rtt = (int)(*it)->type(); if(rtt == col_rtti || rtt == thick_rtti) (*it)->hide(); } int nx = (int)gwp->canvas->width(); int ny = (int)gwp->canvas->height(); if(suffix == "png" || suffix == "jpg") {QPixmap pixmap = QPixmap(nx,ny); QPainter pp(&pixmap); pp.setBrush(QBrush(Qt::white)); pp.setPen(QPen(Qt::white)); pp.drawRect(QRect(0,0,nx,ny)); pp.setPen(QPen(Qt::black)); render(&pp,QRectF(2,2,nx,ny),QRect(2,2,nx,ny)); pixmap.save(staticData::fileImage); } else if(suffix == "svg") {QSvgGenerator *svg = new QSvgGenerator(); svg->setFileName(staticData::fileImage); svg->setResolution(90); //ecran pts/pouce //svg->setResolution(physicalDpiX()); //ecran 101 svg->setSize(QSize(nx,ny)); QPainter pp(svg); pp.setBrush(QBrush(Qt::white)); pp.setPen(QPen(Qt::white)); pp.drawRect(QRect(0,0,nx,ny)); pp.setPen(QPen(Qt::black)); render(&pp,QRectF(2,2,nx,ny),QRect(2,2,nx,ny)); } else if(suffix == "pdf" || suffix == "ps") {QPainter pp(printer); render(&pp,QRectF(0,0,printer->width(),printer->height()),QRect(2,2,nx,ny)); } setGeometry(geo); load(true); }
void Matrix::exportSVG(const QString& fileName) { #if QT_VERSION >= 0x040300 if (d_view_type != ImageView) return; int width = numRows(); int height = numCols(); QSvgGenerator svg; svg.setFileName(fileName); svg.setSize(QSize(width, height)); QPainter p(&svg); p.drawImage (QRect(0, 0, width, height), d_matrix_model->renderImage()); p.end(); #endif }