我被赋予了使用Delphi实现Identicon
的任务。我搜索过互联网但仍然没有找到任何东西。
所以我从哪里开始,这里有人可以给出解释吗?
答案 0 :(得分:21)
这只是一个解释,可以为您提供Identicons的主张。
Identicons是一堆字节的图形表示,很可能是一个哈希值。
让我们取一个样本MD5哈希值(16字节)
abf5787309f3c4d5b255237c0b67dd5e
好的,让他们以不同的方式安排
ab f5 78 73 09 f3 c4 d5 b2 55 23 7c 0b 67 dd 5e
现在我们有16个字段,每个字段代表一个字节。因此,我们可以使用256个不同的小图像构建图像。但也许我们可以将其分解为一种不太复杂的方法。
让我们取一个字节(第一个 ab )及其二进制表示
10101011
好的,让他们以不同的方式安排:o)
10 10 10 11
现在我们有4个字段,每个字段可以有四种状态之一。这很容易管理4个不同的图像。
00 = empty 01 = / 10 = \ 11 = X
回到我们的字节,我们将得到这个
┌─────┐ │ \ \ │ │ \ X │ └─────┘
回到整体我们得到
┌─────┬─────┬─────┬─────┐ │ \ \ │ X X │ / X │ / X │ │ \ X │ / / │ \ │ X │ ├─────┼─────┼─────┼─────┤ │ │ X │ X │ X / │ │ \ / │ X │ / │ / / │ ├─────┼─────┼─────┼─────┤ │ \ X │ / / │ \ │ / X │ │ \ │ / / │ X │ X │ ├─────┼─────┼─────┼─────┤ │ │ / \ │ X / │ / / │ │ \ X │ / X │ X / │ X \ │ └─────┴─────┴─────┴─────┘
这里的重点是减少易于处理的小部件。
答案 1 :(得分:1)
我曾经开始将原始库移植到Delphi / Graphics32。但是,到目前为止,我还没有时间完成这个小项目。可以在my website (see Delphi -> Graphics32)上找到源代码和示例应用程序。
最初它的目的是展示即将推出的2.0版本中的一些新的矢量图形功能。尽管事实上还没有发布,但源代码已经可以使用trunk存储库中的代码进行编译。