1. 四通道图片添加文字
//保存路径(包括文件名)
QString tempImagePath="/Users/Tmp/test.png";
//图片上的字符串,例如 HELLO
QString imageText="HELLO";
QFont font;
//设置显示字体的大小
font.setPixelSize(13);
QFontMetrics fm(font);
int charWidth = fm.width(imageText);
charWidth = fm.boundingRect(imageText).width();
//指定图片大小为字体的大小
QSize size(charWidth+8, 15);
//以ARGB32格式构造一个QImage
QImage image(size, QImage::Format_ARGB32);
//填充图片背景,120/250为透明度
image.fill(qRgba(255, 255, 255, 0));
//为这个QImage构造一个QPainter
QPainter painter(&image);
//设置画刷的组合模式CompositionMode_SourceOut这个模式为目标图像在上。
//改变组合模式和上面的填充方式可以画出透明的图片。
painter.setCompositionMode(QPainter::CompositionMode_DestinationOver);
//改变画笔和字体
QPen pen = painter.pen();
pen.setColor( QColor(0, 141, 239));
painter.setPen(pen);
painter.setFont(font);
//将Hello写在Image的中心
painter.drawText(image.rect(), Qt::AlignCenter, imageText);
image.save(tempImagePath, "PNG", 100);
参考:https://blog.csdn.net/shado_walker/article/details/56017785
2. 三通道图片添加文字
QImage img("data/xjanq20191205.jpg");
QPainter pp(&img);
QPen pen = QPen(Qt::red,5);
QBrush brush = QBrush(Qt::red);
pp.setPen(pen);
pp.setBrush(brush);
pp.drawText(QPointF(20,30),QStringLiteral("用于"));
img.save("data/xjanq20191205111.jpg");
参考:https://blog.csdn.net/weixin_39834568/article/details/103726697