我从一段只是访问图像坐标的代码中得到了意外的输出,这是一个片段:
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
构造函数的问题?我不太确定到底发生了什么。
任何想法可能导致这种行为?我在 Ubuntu 10.10 上运行 Qt 4.7。