109 lines
2.3 KiB
C++
Executable File
109 lines
2.3 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* Interface
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
|
|
#include <QtWidgets/QApplication>
|
|
#include <QMainWindow>
|
|
#include <QPainter>
|
|
#include <QImage>
|
|
#include <QSvgGenerator>
|
|
#include <QSvgRenderer>
|
|
|
|
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();
|
|
}
|