我正在尝试对QImage进行一些屏幕外渲染(没有什么特别的,只是一些合成的缩略图),并且遇到了一个问题,即使是新的和空白的QImages也有一些非常严重的噪音:
重现的代码非常简单:
QImage image = new QImage(
(int) b.width(), (int) b.height(),
QImage.Format.Format_ARGB32);
painter.drawImage(0, 0, image);
(b
只是一个QRectF
,包含我正在绘制的QGraphicsItem的边界。
填写新图片似乎没有任何效果:
QPainter p = new QPainter(image);
p.fillRect(b, QColor.transparent);
p.end();
用任何纯色(例如白色)填充它会消除噪音,但不幸的是我需要这个特定的图像是透明的。有没有办法消除噪音?
我正在使用Qt Jambi(4.7.1-beta),但我认为不应该产生巨大的差异。
答案 0 :(得分:7)
来自QImage::QImage(int width, int height, Format format)
的文档:
警告:这将创建一个包含未初始化数据的QImage。呼叫 fill()用之前的适当像素值填充图像 用QPainter画上它。
在构建图像后,请在图片上调用QImage::fill(uint pixelValue)
。