Bitmap sameAs如何工作?

时间:2016-02-21 21:23:03

标签: android image-processing bitmap

Bitmap(来自android.graphics)有sameAs方法。 给定另一个位图,如果它具有与此位图相同的尺寸,配置和像素数据,则返回true。 我想知道它是如何在引擎盖下工作的?覆盖它是否有意义(可能使用一些直方图方法或关键点匹配)?

1 个答案:

答案 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可能是有意义的,它可以进行关键点匹配。