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

时间:2018-06-25 06:18:30

标签: c++ image svg sudoku

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

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

1 个答案:

答案 0 :(得分:0)

如果您要使用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