qt中如何在一个Rect指定的位置绘制字符串

qt中如何在一个Rect指定的位置绘制字符串,第1张

qt绘制字符串到QPixmap中:

QString text = QString::number(5)

QFont font

font.setPointSize(9)

QFontMetrics fm(font)

QPixmap pix(fm.width(text), fm.height())

QRect rect(0, 0, fm.width(text), fm.height())

pix.fill(Qt::transparent)

QPainter painter(&pix)

painter.setFont(font)

painter.setPen(Qt::red)

painter.drawText(rect, text)

楼主不用在Widget上画了,直接用QImage来画,并直接存储.

QImage image = QPixmap("C:/Users/Administrator/Pictures/1.jpg").toImage()//绝对路径

//以你原来的那张图片

//构造一个image

QPainter painter(&image)//为这个QImage构造一个QPainter

painter.setCompositionMode(QPainter::CompositionMode_SourceIn)

//设置画刷的组合模式CompositionMode_SourceOut这个模式为目标图像在上。

//改变画笔和字体

QPen pen = painter.pen()

pen.setColor(Qt::red)

QFont font = painter.font()

font.setBold(true)//加粗

font.setPixelSize(50)//改变字体大小

painter.setPen(pen)

painter.setFont(font)

painter.drawText(image.rect(),Qt::AlignCenter,"Hello")

//将Hello写在Image的中心

int n = 100//这个为图片的压缩度。0/100

image.save("text.png","PNG",n)

//将画好的图片保存起来。

//可以将png改为其他格式


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11382125.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存