Bitmap
(来自android.graphics)有sameAs
方法。
给定另一个位图,如果它具有与此位图相同的尺寸,配置和像素数据,则返回true。
我想知道它是如何在引擎盖下工作的?覆盖它是否有意义(可能使用一些直方图方法或关键点匹配)?
答案 0 :(得分:2)
它基本上是
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可能是有意义的,它可以进行关键点匹配。