我正在开发一个应用程序,以使用户检测到人类签名,然后匹配该签名,以便当该用户分配某些内容时,但我无法匹配这两个签名。
我试图将手势转换为位图,以比较两个位图,它逐像素比较位图,但不匹配。
public boolean equals(Bitmap bitmap1, Bitmap bitmap2) {
ByteBuffer buffer1 = ByteBuffer.allocate(bitmap1.getHeight() *
bitmap1.getRowBytes());
bitmap1.copyPixelsToBuffer(buffer1);
ByteBuffer buffer2 = ByteBuffer.allocate(bitmap2.getHeight() *
bitmap2.getRowBytes());
bitmap2.copyPixelsToBuffer(buffer2);
return Arrays.equals(buffer1.array(), buffer2.array());
}
但是此代码逐像素进行比较,因此,如果仅移动一个位图,将无法正常工作。
这是我将其保存为位图的签名:
然后,当我传递这些位图以检查它们是否相同时,它返回false
并说签名不匹配。
那我该如何解决这个问题?