Я получаю неожиданный вывод из фрагмента кода, который просто обращается к координатам изображения, вот фрагмент:
QImage image(imageFileNames[frameNumber]);
QRgb qrgb(image.pixel(493,114));
QColor testCol(qrgb);
Используя отладчик, чтобы убедиться, что я получаю правильный путь к изображению, я получаю что-то вроде ../seq/0001.png
, что, как и ожидалось. Однако testCol
имеет следующие значения:
[argb]
alpha 65535
blue 28013
green 24415
pad 0
red 59367
Вместо ожидаемого значения в диапазоне 255 255 255. Кроме того, значение qrb равно 4293353325. Координата пикселя находится в диапазоне изображения (изображение 720x288), а изображение имеет формат .png
(QImage::Format_RGB32
).
Я также обнаружил, что эта проблема кажется глобальной для всего приложения, и любой новый код, который пишется, наследует это поведение.
После дальнейших экспериментов, используя следующий код:
QRgb qrgb(image.pixel(1,1)); //again this is in range
int blue = qBlue(qrgb);
int red = qRed(qrgb);
int green = qGreen(qrgb);
QColor testCol(red,green,blue, 255);
testColor
по-прежнему имеет неправильные значения. Однако красный, зеленый и синий цвета показывают ожидаемые значения. Похоже, это проблема с конструктором QColor
? Я не совсем уверен в том, что именно происходит.
Любые идеи, что может быть причиной такого поведения? Я использую Qt 4.7 на Ubuntu 10.10.