Qt:空透明QImage有噪音

时间:2012-11-20 00:06:01

标签: qt qimage jambi

我正在尝试对QImage进行一些屏幕外渲染(没有什么特别的,只是一些合成的缩略图),并且遇到了一个问题,即使是新的和空白的QImages也有一些非常严重的噪音:

screenshot

重现的代码非常简单:

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),但我认为不应该产生巨大的差异。

1 个答案:

答案 0 :(得分:7)

来自QImage::QImage(int width, int height, Format format)的文档:

  

警告:这将创建一个包含未初始化数据的QImage。呼叫   fill()用之前的适当像素值填充图像   用QPainter画上它。

在构建图像后,请在图片上调用QImage::fill(uint pixelValue)