1

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

4

2 回答 2

21

这只是一个解释,让您了解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 = 空
01 = /
10 = \
11 = X

回到我们的字节,我们将得到这个

┌──────┐
│ \ \ │
│ \ X │
└──────┘

回到我们得到的整体

┌──────┬──────┬──────┬──────┐
│ \ \ │ XX │ / X │ / X │
│ \ X │ / / │ \ │ X │
├──────┼──────┼──────┼──────┤
│ │ X │ X │ X / │
│ \ / │ X │ / │ / / │
├──────┼──────┼──────┼──────┤
│ \ X │ / / │ \ │ / X │
│ \ │ / / │ X │ X │
├──────┼──────┼──────┼──────┤
│ │ / \ │ X / │ / / │
│ \ X │ / X │ X / │ X \ │
└──────┴──────┴──────┴──────┘

这里的重点是简化为易于处理的小部件。

于 2014-01-24T09:14:00.267 回答
1

我曾经开始将原始库移植到 Delphi / Graphics32。然而,直到现在我才找到时间完成这个小项目。可以在我的网站上找到源代码和示例应用程序(参见 Delphi -> Graphics32)

最初它的目的是展示即将发布的 2.0 版中的一些新矢量图形功能。尽管事实上这还没有发布,但源代码已经可以使用主干存储库中的代码进行编译。

于 2014-01-25T21:22:02.817 回答