如何打印QImage的所有原始数据,以便在内存中进行比较
How to print all the raw data of QImage for comparisons in the memory?
我有两个QImage对象,它们应该相等,但QImage::operator==
的结果是false
。所以我想打印这两个对象的所有原始数据进行比较。如何做到这一点?可以用qDebug()完成吗?
我建议您编写一个函数来逐字节比较这两个图像,并返回它们不同的偏移量。
手动比较图像数据通常是乏味的,并且可能导致错误。
如果您想打印每个像素的值,那么使用QImages的bits()方法获取指向无符号字符中所有像素值的指针,并将它们打印出来进行循环。例如,如果你有32位的图片,那么在bits()返回的表中,每个像素有4个值(红、绿、蓝、阿尔法),要知道其中有多少个,你只需要使用width()*height()*4(如果是32位深度)。或者,您可以比较每个像素,而不是打印,只返回不同的像素。
使用qDebug() << QImage()
将打印出类似QImage(QSize(0, 0) )
的内容。
可以使用const uchar * QImage::constBits()
函数获取指向第一个像素数据的指针,然后遍历像素数据,打印值。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 将字符串存储在c++中的稳定内存中
- 为什么比较运算符如此快速
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- Win32编译器选项和内存分配
- 速度和内存的比较
- C++中的结构是否按顺序分配内存?每次都以某种方式获得指针比较的正确答案
- 可以在C++中比较原始内存
- 如何正确比较存储在内存中的两个数组?
- 内存使用比较
- 使用C++原子库,我应该使用什么样的内存顺序进行加载,然后进行比较交换
- 带有内存比较的 STL 映射.如何在运行时设置比较块大小
- 比较两个类的内存布局
- 比较快速两个内存区域
- 如何打印QImage的所有原始数据,以便在内存中进行比较
- 错误:malloc():排序的比较函数内存损坏
- C++内存分配机制性能比较(tcmalloc与jemalloc)
- 如何比较2D矢量大小与操作系统内存地址限制
- C++HTTPS库在性能方面如何比较(例如内存占用、CPU时间等)
- 内存访问比较