У меня проблема с QPainter
на QImage
в Qt 5.4.Почему цвет пикселей с обратным отсчетом отличается от цвета, нарисованного на QImage?
Изображение Format_ARGB32
. Я хочу установить заданное значение RGBA для пикселей на изображении с помощью функции выделения QPainter
, а затем прочитать значение обратно с помощью 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
Fill работает правильно (возвращаемое значение цвета используется для заполнения). Но в моем случае у меня есть разные значения, которые нужно нарисовать на изображении и прочитать; ни одного значения. Есть идеи? – rajeshma
Код как опубликованный (с режимом композиции 'QPainter :: CompositionMode_Source') работает так, как ожидалось для меня. –