ned*_*eda 7 c++ qt qpainter qimage drawtext
我想在图像上绘制文本。我使用此代码,但是在图像上看不到任何文本。
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);
}
Run Code Online (Sandbox Code Playgroud)
QPainter必须在映像有效之前完成I / O操作。您可以在 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);
}
Run Code Online (Sandbox Code Playgroud)
PS:我添加了bool返回值以更好地跟踪错误。