QT - 图像处理 ( 6 ) - QPainter 对 QPixmap 图像拼接、覆盖、写文字

本文介绍了使用QPainter在QPixmap上进行图像操作,包括字符串绘制、图片水平拼接、图片覆盖以及多图拼接等技术,详细展示了如何利用Qt库进行图像处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 把字符串绘制在QPixmap上

QPixmap MainWindow::text2Pixmap(QString text)
{
    QFontMetrics fmt(m_font);
    QPixmap result(fmt.width(text), fmt.height());
  
    QRect rect(0,0,fmt.width(text), fmt.height());
    result.fill(Qt::transparent);
    QPainter painter(&result);
    painter.setFont(m_font);
    painter.setPen(QColor(255,143,36));
    //painter.drawText(const QRectF(fmt.width(text), fmt.height()),Qt::AlignLeft, text);
    painter.drawText((const QRectF)(rect),text);
    return result;
}
QSize size(200,200); //指定图片大小;
QImage image(size,QImage::Format_ARGB32); //以ARGB32格式构造一个QImage

//image.fill(qRgba(0,0,0,100));//填充图片背景,120/250为透明度
QPainter painter(&image); //为这个QImage构造一个QPainter
painter.setCompositionMode(QPainter::CompositionMode_DestinationOver);
//设置画刷的组合模式CompositionMode_SourceOut这个模式为目标图像在上。
//改变组合模式和上面的填充方式可以画出透明的图片。

//改变画笔和字体
QPen pen = painter.pen();
pen.setColor(Qt::red);
QFont f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值