海明小威 2016-12-07 07:25 采纳率: 0%
浏览 1608

Qt文字渲染图片字体颜色改变不了

工作中要利用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);
  • 写回答

2条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办