1
我想在我的OpenGL应用程序上运行几个单元测试。这导致我在过去几个问题(OpenGL draw difference between 2 computers),但现在我知道我能做什么,不能做什么。奇怪的QImage比较结果
这里有一个小测试,我写了检查渲染:
QImage display(grabFrameBuffer());
QImage wanted(PATH_TO_RESSOURCES + "/file_010.bmp");
int Qimage_width = display.width();
int Qimage_height = display.height();
for(int i = 1; i < Qimage_width; i++) {
for(int j = 1; j < Qimage_height; j++) {
if(QColor(display.pixel(i, j)).name() != QColor(wanted.pixel(i, j)).name()) {
qDebug() << "different pixel detected" << i << j;
}
}
}
QVERIFY(wanted == display);
的QVERIFY()失败,但消息"different pixel detected" << i << j
从未显示。 如果我用Photoshop比较文件(请参阅photo.stackexchange),我找不到任何不同的像素。我有点迷路。
编辑:我正在使用Qt 5.2,如果手动更改file_010.bmp上的一个像素,将显示错误消息"different pixel detected" << i << j
。
你确定比较name()属性是否恰当? –
@MartinDelille name()返回颜色十六进制代码(即:##00ff00)如果代码不同,像素不一样。 –
尝试比较颜色组分而不是:QColor :: red(),QColor :: blue()和QColor :: green() –