我有两个QImage对象应该相等,但QImage::operator==
的结果是false
。所以我想打印两个对象的所有原始数据进行比较。怎么做?可以用qDebug()来完成吗?
答案 0 :(得分:1)
如果要打印每个像素的值,则使用QImage的bits()方法获取指向unsigned char中所有像素值的指针,然后将它们打印在for循环中。例如,如果你有32位图片,那么在bits()返回的表中你将为每个像素(红色,绿色,蓝色,Alpha)提供4个值,并知道有多少个你只使用width()* height ()* 4(如果它是32位深度)。或者您可以比较每个像素而不是打印,只返回那些不同的像素。
答案 1 :(得分:1)
使用qDebug() << QImage()
会打印出类似QImage(QSize(0, 0) )
的内容。
您可以使用const uchar * QImage::constBits()
函数获取指向第一个像素数据的指针,然后遍历像素数据,打印值。
答案 2 :(得分:1)
我建议您编写一个函数来逐个字节地比较两个图像,并返回它们不同的偏移量。
手动比较图像数据通常很乏味,可能导致错误。