Я хочу нарисовать текст на изображении. Я использую этот код, но я не вижу текста на изображении.
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);
}
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
вернитесь для лучшего отслеживания ошибок.
Других решений пока нет …