gpt4 book ai didi

Android 计算位图的哈希值

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:16 25 4
gpt4 key购买 nike

我想计算不同位图的 SHA1 散列(不强制使用 SHA)。问题是有些位图(验证码)基本相同,但名称经常更改。

我发现了这个:

Compute SHA256 Hash in Android/Java and C#

但这不是我想要的解决方案。

Bitmap.hashCode(),只生成一个Integer,当我正确的时候

Returns an integer hash code for this object. By contract, any two objects for which equals(Object) returns true must return the same hash code value. This means that subclasses of Object usually override both methods or neither method.

我不想要对象的哈希码,我想要位图内容的哈希码。谢谢!

最佳答案

在 Android 3.1 或更高版本(API 级别 12)中,Bitmap 上有一个名为 sameAs() 的方法,它将比较像素并在两者表示相同时返回图片。它在 native 代码中执行此操作,因此速度相对较快。

如果您必须以较低的 API 级别为目标,则必须编写一个方法来遍历两个对象的每个像素并查看它们是否匹配。如果用 Java 代码完成,这将是一个非常密集的过程,因此您可以考虑使用 NDK 编写一个小例程,您可以从应用程序调用它以在 native 代码中进行比较(NDK 中有位图 API,因此您可以轻松地获取像素缓冲区)。

如果您选择在 Java 中这样做,getPixels() 将帮助您获取像素数据的数组,您可以在两个图像之间进行比较。

HTH

关于Android 计算位图的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11128078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com