如何在Delphi中生成Identicon

hnd*_*wan 1 delphi identicon using

我已经被赋予了Identicon使用Delphi 实现的任务.我搜索过互联网但仍然没有找到任何东西.那么我从哪里开始,这里有人可以给出解释吗?

Sir*_*ufo 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 \ ?
?????????????????????????

这里的重点是减少易于处理的小零件.