Нарисуйте текст на изображении, используя Qt

Я хочу нарисовать текст на изображении. Я использую этот код, но я не вижу текста на изображении.

void ImageSaver::save(const QString &path) const {
QImage image(img_);
QPainter p(&image);
p.setPen(QPen(Qt::red));
p.setFont(QFont("Times", 12, QFont::Bold));
p.drawText(image.rect(), Qt::AlignCenter, "Text");
image.save(path);
}

3

Решение

QPainter должен завершить операции ввода-вывода, прежде чем изображение будет действительным. Вы можете сделать это после QPainter уничтожение объекта или использование begin/end методы.

bool ImageSaver::save(const QString &path) const {
QImage image(img_);
QPainter p;
if (!p.begin(&image)) return false;

p.setPen(QPen(Qt::red));
p.setFont(QFont("Times", 12, QFont::Bold));
p.drawText(image.rect(), Qt::AlignCenter, "Text");
p.end();

return image.save(path);
}

П.С .: Я добавил bool вернитесь для лучшего отслеживания ошибок.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]