Алгоритм создания символьного рисунка

Рейтинг: 2Ответов: 2Опубликовано: 23.01.2011

Допустим, на вход подается обычное изображение. Как преобразовать его в рисунок из символов?

Ответы

▲ 7Принят

Думаю, в простом виде алгоритм Ascii-генератора будет примерно таким:

  1. Разбиваем картинку на множество клеток N*M (чтобы были пропорциональны ширине-высоте символа) и двигаемся по этим клеткам.
  2. Анализируем клетку. Для каждой точки клетки считаем среднее арифметическое между составляющими цвета (Red + Green + Blue) / 3. Затем вычисляем среднее значение среди всех точек клетки.
  3. Подбираем для клетки соответствующую маску (символ). Можно заранее выбрать символы, из которых будет состоять символьный рисунок (различные по светлоте) и самостоятельно определить соответствие параметру из пункта 2. Либо проделать пункт 2 с канвой N*M, на которую выведен символ, чтобы определить его светлоту (и так для каждого символа), затем выбрать с наиболее близким значением.

p.s. это для monospace шрифта, но переработать несложно.

▲ 3

http://sourceforge.net/projects/ascgen2/
прога + исходники на C#