Qt 5.4にQPainter
のQImage
に関する問題があります。なぜ読み込みピクセルの色がQImageで描画される色と異なるのですか?
画像にはFormat_ARGB32
が含まれています。 QPainter
描画関数を使用して画像のピクセルにRGBA値を設定し、後でQImage::pixel
を使用して値を読み取る必要があります。
ただし、塗りつぶされた値と読み取られた値は異なります。私は間違って何をしていますか?
サンプルコード:
QImage image(100, 100, QImage::Format_ARGB32);
uint value = 0x44fa112b; //some value..
QPainter painter(&image);
painter.setCompositionMode(QPainter::CompositionMo de_Source);
QColor color(qRed(value), qGreen(value), qBlue(value), qAlpha(value));
QBrush brush(color);
painter.setBrush(brush);
painter.drawRect(0,0,image.width(), image.height());
uint value1 = image.pixel(50,50);
// value1 IS NOT EQUAL TO value. Why??
イメージを値で塗りつぶすには、QImage :: fillを使用することができます。それでは、最終的に得られる価値は何ですか? – peppe
塗りつぶしが正しく機能しています(返される色の値は、塗りつぶされたものと同じです)。しかし、私の場合、私はイメージに描かれて読まれるべき異なる値を持っています。単一の値ではありません。何か案が? – rajeshma
投稿されたコード(コンポジションモード 'QPainter :: CompositionMode_Source')は私にとっては期待通りに機能します。 –