//=================================================================================== //保存路径(包括文件名) 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);//===================================================================================其效果如下图:
截图放入QQ中效果如下:
代码所指定的意思已经作为注释嵌入到代码中了,只要将以上代码进行封装,就可以实现将指定字符串写入图片中展示给用户了。
新闻热点
疑难解答