我想使用 Qt 5.2 创建带有 alpha 的图像,但我发现颜色值正在被量化。这是一个例子:
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 渲染器的预期行为?