有一个需求:重复图片,文件只保存一次。
所以要比较图片内部数据 QPixmap 是不是一样(没有保存图片路径,故不能对比路径来判断)。
但QPixmap 没有重载相等“==”运算符,最后把 QPixmap 转为QImage 对比像素,来对比是不是同一图片。
---------------------------------------------------------------------------------------------------------------
转换为QImage,再比较QImage,速度肯定受影响。
最后发现一个函数:
qint64 cacheKey() const;
cacheKey是QPixmap的标识ID,如果不同的QPixmap对象引用相同的内容,则它们只能具有相同的cacheKey。当像素图被改变时,cacheKey()将会改变。
使用它可以实现对比,速度更快。
if (image->bitmap().cacheKey() ==