Как создать Identicon в Delphi

Мне дали задание реализовать Identicon используя Delphi. Я искал в интернете и до сих пор ничего не нашел. Итак, с чего мне начать, есть ли здесь кто-то, кто может дать объяснение?

2 ответа

Это просто объяснение, чтобы дать вам представление об идентиконах.

Идентификаторы представляют собой графическое представление группы байтов, наиболее вероятно хэш-значение.

Давайте возьмем примерное значение хеша MD5 (16 байт)

abf5787309f3c4d5b255237c0b67dd5e

Хорошо, пусть они устроят по-другому

ab f5 78 73
09 f3 c4 d5
b2 55 23 7c
0b 67 дд 5д

Теперь у нас есть 16 полей, каждое из которых представляет байт. Таким образом, мы могли бы создать изображение с 256 различными маленькими изображениями. Но, возможно, мы можем разбить его на менее сложный метод.

Давайте возьмем один байт (первый ab) и его двоичное представление

10101011

Хорошо, пусть они по-другому устроятся: о)

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 \ │ └─────┴──── ─┴─────┴─────┘

Все дело здесь в том, чтобы уменьшить количество мелких деталей.

Однажды я начал портировать оригинальную библиотеку на Delphi / Graphics32. Однако я так и не нашел время закончить небольшой проект до сих пор. Исходный код вместе с примером приложения можно найти на моем сайте (см. Delphi -> Graphics32).

Первоначально он должен был показать некоторые новые функции векторной графики из будущей версии 2.0. Несмотря на то, что это до сих пор не выпущено, исходный код уже может быть скомпилирован с кодом в ствольном репозитории.

Другие вопросы по тегам