Qt 5.2 を使用してアルファを含む画像を作成したいのですが、色の値が量子化されていることがわかりました。次に例を示します。
QColor testColor(248, 64, 16, 2);
QImage image(10, 10, QImage::Format_ARGB32);
QPainter painter(&image);
painter.setCompositionMode(QPainter::CompositionMode_Source);
painter.fillRect(0, 0, 5, 5, testColor);
painter.end();
qDebug("Test color was (%d, %d, %d, %d)",
testColor.red(), testColor.green(), testColor.blue(), testColor.alpha());
QRgb value = image.pixel(1, 1);
qDebug("QPainter painted (%d, %d, %d, %d)",
qRed(value), qGreen(value), qBlue(value), qAlpha(value));
これは出力します:
Test color was (248, 64, 16, 2)
QPainter painted (255, 127, 0, 2)
私のアプリケーションでは、元の赤、緑、青の値を維持することが重要です。私が見逃した Qt オプションはありますか、それとも Qt 2D レンダラーの予想される動作ですか?