工作中要利用Qt实现文字渲染为图片的功能。按照网上查找出来的例子,通过创建QImage填充(fill)一个图片作为背景,然后通过设置QPainter的QFont和QPen来编辑文字格式和图片,渲染出来的文字字体都是黑色的,改变QPen的颜色也没有,但是不填充背景图片就可以改变颜色,下面贴出代码:
#include "renderimage.h"
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QSize size(400,300); //指定图片大小;
QImage image(size,QImage::Format_ARGB32); //以ARGB32格式构造一个QImage,
// image.fill(qRgba(255,200,200,0));//填充图片背景,120/250为透明度
image.load("background.jpg");
QPainter painter(&image); //为这个QImage构造一个QPainter
painter.setCompositionMode(QPainter::CompositionMode_SourceOut);
//改变画笔和字体
QPen pen = painter.pen();
pen.setColor(QColor(255, 0, 0, 255));
QFont font = painter.font();
font.setBold(true);//加粗
font.setPixelSize(50);//改变字体大小
painter.setPen(pen);
painter.setFont(font);
painter.drawText(QPoint(25, 50), "吃炸鸡!");
pen.setColor(QColor(0, 255, 0, 255));
font.setItalic(true);
painter.setPen(pen);
painter.drawText(QPoint(25, 100), "吃炸鸡!");
image.save("image.bmp","bmp",100);