Bitmap
(来自android.graphics)具有sameAs
方法。
给定另一个位图,如果它具有与此位图相同的尺寸,配置和像素数据,则返回true。
我想知道它是如何工作的?覆盖它是否有意义(也许使用某些直方图方法或关键点匹配)?
最佳答案
它基本上可以
if(bmp1.height==bmp2.height && bmp1.width==bmp2.width) {
for(int i=0; i< bmp1.width; i++){
for(int j=0; j< bmp1.height; j++){
if(bmp1.getPixel(i,j) != bmp2.getPixel(i,j)) {
return false;
}
}
}
return true;
}
return false;
但是它将使用像memcmp这样的低级内存比较功能,而不是像这样实际循环。
至于覆盖它是否有意义-并非如此。您会搞砸其他假定该功能仍然有效的人。创建您自己的函数sameKeyPoint可能会进行关键点匹配,这很有意义。