如何将 2d 数组转换为 svg 或 png 格式的数独图像?



我正在尝试用C++制作一个数独生成器,为此我将生成的谜题存储为 2D 矩阵。如何像数独一样生成该数组的 svg 图像或 png 图像?

就像我知道我可以使用许多工具,如 svg++、Qt、simple-svg,从 @Marek R 的答案来看,我认为 Qt 的 QImage 会很好用,但我想知道有没有办法我可以加载现有的数独,只是更改其单元格中的值而不是自己绘制?在Qt中是否有可能,如果没有,还有其他方法吗?

如果你使用Qt,那就很简单了:

void SomeClass::paintSvg(const QString &path)
{
QSvgGenerator generator;
generator.setFileName(path);
generator.setSize(QSize(200, 200));
generator.setViewBox(QRect(0, 0, 200, 200));
generator.setTitle(tr("Sudoku problem"));
generator.setDescription(tr("An SVG drawing created by the SVG Generator "
"Example provided with Qt."));
QPainter painter;
painter.begin(&generator);
paintSudokuOn(painter);
painter.end();
}
void SomeClass::paintPng(const QString &path) {
QImage image { {200, 200}, QImage::Format_RGB32 };
QPainter painter;
painter.begin(&image);
paintSudokuOn(painter);
painter.end();
image.save(path);
}
void SomeClass::paintSudokuOn(QPainter &painter) {
// your code to do drawing
}

见 http://doc.qt.io/qt-5/qtsvg-svggenerator-example.html

最新更新