3

QImage(特別なことは何もなく、合成されたサムネイルがいくつかあるだけ)にオフスクリーンレンダリングを実行しようとしていますが、新しい、おそらく空白のQImageでさえかなり深刻なノイズが発生するという問題に直面しています:

スクリーンショット

再現するコードはかなり単純です。

QImage image = new QImage(
        (int) b.width(), (int) b.height(),
        QImage.Format.Format_ARGB32);
painter.drawImage(0, 0, image);

(私がペイントしている QGraphicsItem の境界を含むbだけです)QRectF

新しい画像を塗りつぶしても効果がないようです:

QPainter p = new QPainter(image);
p.fillRect(b, QColor.transparent);
p.end();

単色(白など)で塗りつぶすとノイズが取り除かれますが、残念ながら、この特定の画像を透明にする必要があります。ノイズを取り除く方法はありますか?

Qt Jambi (4.7.1-beta) を使用していますが、大きな違いはないと思います。

4

1 に答える 1

7

のドキュメントからQImage::QImage(int width, int height, Format format)

警告: これにより、初期化されていないデータで QImage が作成されます。QPainter で画像を描画する前に、fill() を呼び出して画像を適切なピクセル値で塗りつぶします。

QImage::fill(uint pixelValue)そのため、イメージを構築した後に呼び出します。

于 2012-11-20T02:13:42.247 に答える