/** * @RDE_HEADER@ * Interface * $Id$ * $HeadURL$ * $Author$ */ #include #include #include #include #include #include void renderImpactSymbol(QPainter& painter) { // From SymbolDictionaryExtendedImpl::renderImpactSymbol QColor color = Qt::red; int size = 100; bool filled = false; QPen pen(color); pen.setWidth(2); painter.setPen(pen); const int sizeHalf = size/2.0; QPointF center(sizeHalf, sizeHalf); // circle if (filled) painter.setBrush( color ); painter.drawEllipse(center, sizeHalf*0.5, sizeHalf*0.5); // // lines // QLine newLine(0, sizeHalf, size, sizeHalf); // painter.drawLine(newLine); // QTransform trans; // trans.translate(sizeHalf, sizeHalf); // trans.rotate(45); // trans.translate(-sizeHalf, -sizeHalf); // newLine = trans.map(newLine); // painter.drawLine(newLine); // newLine = trans.map(newLine); // painter.drawLine(newLine); // newLine = trans.map(newLine); // painter.drawLine(newLine); } int main (int argc, char* argv[]) { QApplication app ( argc, argv ); // under windows for ArcGIS 10.2.6 and higher #ifdef Q_OS_WIN QCoreApplication::setAttribute( Qt::AA_UseOpenGLES ); #endif int fullSize = 100; QImage image(fullSize, fullSize, QImage::Format_ARGB32); image.fill(qRgba(0,0,0,0)); { // Image: QPainter painterI(&image); renderImpactSymbol(painterI); painterI.end(); image.save(QLatin1String("dummy.png")); // SaveSvg: QSvgGenerator generator; generator.setFileName(QLatin1String("dummy.svg")); generator.setSize(QSize(100, 100)); generator.setViewBox(QRect(0, 0, 100, 100)); generator.setTitle(QLatin1String("SVG Generator Example Drawing")); generator.setDescription(QLatin1String("An SVG drawing created by the SVG Generator")); QPainter painterSvg; painterSvg.begin(&generator); renderImpactSymbol(painterSvg); painterSvg.end(); } { QSvgRenderer svgRenderer; QImage image(fullSize, fullSize, QImage::Format_ARGB32); image.fill(qRgba(0,0,0,0)); QPainter painter(&image); svgRenderer.load(QLatin1String("manualDummy.svg")); svgRenderer.render(&painter); painter.end(); image.save(QLatin1String("manualDummy.png")); } return app.exec(); }