1

我有两个 QImage 对象,它们应该相等,但结果QImage::operator==false. 所以我想打印两个对象的所有原始数据进行比较。怎么做?可以用 qDebug() 完成吗?

4

3 回答 3

2

我建议你编写一个函数来逐字节比较两个图像,并返回它们不同的偏移量。

手动比较图像数据通常很乏味并且可能导致错误。

于 2013-08-19T13:24:30.927 回答
1

如果要打印每个像素的值,请使用 QImage 的 bits() 方法获取指向 unsigned char 中所有像素值的指针,然后在 for 循环中打印它们。例如,如果您有 32 位图片,那么在 bits() 返回的表中,每个像素(红色、绿色、蓝色、Alpha)将有 4 个值,并且要知道其中有多少您只使用了 width()*height ()*4(如果是 32 位深度)。或者您可以比较每个像素而不是打印并仅返回不同的像素。

于 2013-08-19T12:38:03.407 回答
1

使用qDebug() << QImage()将打印出类似QImage(QSize(0, 0) ).

您可以使用该const uchar * QImage::constBits()函数获取指向第一个像素数据的指针,然后遍历像素数据,打印值。

于 2013-08-19T12:39:35.157 回答