#service

2023-10-14

Графическая кодировка

Сервис: Colorpack

Переводит исходный текст в сокращённую кодировку, кодированный текст переводится в изображение. Доступно и в обратном порядке: декодирование картинки, декодирование текста.

Кодировка

□abcdefghijklmnopqrstuvwxyz_.,^#1234567890()+-*/<>="&|$%[]{}?\':;

^ используется для поднятия регистра букв и ввода некоторых дополнительных символов. Несколько символов вводятся самостоятельными комбинациями. Сам символ ^ недоступен для ввода. Русские символы транслитерируются и обратно не восстанавливаются. Все остальные неподдерживаемые вырезаются.

Примеры замен

^^aa    AA
^a      A
^.      !
^/      \
^       \n

Последовательные группы, которые можно выразить одним “шифтом”, сразу обозначаются им через ^^. Например DOOM будет закодировано как ^^doom, а не ^d^o^o^m (что тоже корректно).

Результат кодирования теста переводится в цветные пиксели. Кодировка шестибитная, а в трёх цветовых каналах одного пикселя 24 бита, т.е. один пиксель может кодировать четыре символа.

Размер цветной ячейки и длина строки в ячейках настраивается. Кодированное изображение содержит информацию о размере ячейки, что позволяет загружать изображения, созданные с размерами ячеек от 1 до 99 пикселей. Реализовано скачивание картинки на смартфонах.

Алгоритм перевода текста в цвет

  1. Текстовые символы группируются по четыре;
  2. Каждый преводится в 6-битное двоичное число;
  3. Эти числа склеиваются слева-направо в одно 24-битное число;
  4. 24-битное делится на три 8-битных. Это и есть цветовые каналы пикселя.
  5. Повторить с другими группами символов.
  6. Если осталось меньше четырёх символов, пустые места забиваются нулями.

Скрин

Image

История

Изначально, из-за ошибки расчёта, разрабатывалась 36-символьная кодировка. В ней не было отдельных цифр, математических символов и много чего. Они вводились через цифровой режим #. Позже кодировка расширена до 64-символьной и модификатор # полностью удалён.

В написании кода использовались подсказки ChatGPT-3.5.