1.
Смотрите документацию QImage::setPixel
:
Если формат изображение, является либо монохромным или 8-бит, данным значением index_or_rgb должно быть индекс в таблице цветов на изображении, в противном случае параметр должен быть значением QRgb.
Я предполагаю, что ваш образом не является ни монохромным, ни 8-бит, так что вам нужно, чтобы получить QRgb
значение (которое является ЬурейиМ из unsigned int
).
2.
Далее, если вы посмотрите на QColor
документации, вы можете заметить, что QRgb
значение из QColor
должны быть получены с использованием rgb()
(или rgba()
, если использовать альфа-канал в изображении).
3.
Обратите внимание, что QColor
не следует создавать с помощью new
. Он обычно создается в стеке и передается по значению. Так что ваш код должен быть исправлен в следующем виде:
QColor c(185, 20, 120);
image.setPixel(i, i2, c.rgba());
отметить также, что value()
не возвращает представление всей QColor
. Он просто возвращает один из трех компонентов представления HSV QColor
. Кажется, что value()
полностью не связан с вашим прецедентом.