Выберите входной файл
Руководство по изображениям создаёт refund-window.lspx.png из исходника длиной 89 байт.
Проверка показывает page_count: 1, а декодирование восстанавливает исходник.
| Изображение | Файл для проверки, декодирования или запуска |
|---|---|
| Одна страница | Исходный файл .lspx.png |
| От 2 до 32 страниц | Полный файл .lspx-images.zip |
ZIP из двух страниц содержит page-01of02.lspx.png, затем page-02of02.lspx.png.
Сохраняйте обе страницы в исходном ZIP.
Декодер проверяет весь набор, включая порядок страниц.
Кодировщик определяет число страниц по размеру и структуре исходника.
Что фиксирует формат
Формат задаёт единственное точное байтовое представление изображения.
Именно это означает canonical в результате проверки.
Одного совпадения видимой картинки недостаточно.
| Часть | Фиксированное представление |
|---|---|
| Формат изображения | csk.lispex-image/v2 |
| JSON проверки | csk.lispex-image-inspection/v1 |
| Профиль изображения, задающий правила рисования | csk.lispex-image-profile/v2 |
| Кодовая таблица, сопоставляющая элементы исходника с визуальными символами | csk.lispex-image-codebook/v2 |
| Раскладка страницы | Ширина 1304 пикселя, палитра Sunlit Amber и заданные позиции данных изображения |
| Сжатие PNG | Кодирование Хаффмана с фиксированной таблицей кодов |
| Структура ZIP | Несжатые записи с заданными именами страниц, порядком и байтами каталога |
Для передачи используйте исходный файл, созданный кодировщиком. Снимки экрана, изменение размера или цвета, добавление метаданных, повторное сжатие, пропуск и перестановка страниц отвергаются. Декодер не использует OCR или распознавание камерой для чтения входа.
Ограничения входа
Читатель — это часть программы, которая преобразует текст исходника в структурированные элементы. Его узлы представляют эти элементы, а глубина измеряет их вложенность.
| Вход или структура | Максимум |
|---|---|
| Исходник | 1 МиБ, или 1 048 576 байт |
| Узлы читателя | 16 384 |
| Глубина вложенности | 256 |
| Страницы изображения | 32 |
Декодер проверяет длины и смещения до выделения памяти. Все ограничения действуют одновременно. Соблюдения одного лимита байтов исходника недостаточно.
Как проверяется исходник
При декодировании проверяются структура файла, хеши целостности, структура исходника и проверочные данные Рида–Соломона. Это дополнительные данные для обнаружения повреждений закодированного содержимого. Затем декодер пересоздаёт изображение и сравнивает его с полным переданным PNG или ZIP.
Формат задаёт два правила:
decode(encode(source)) = source
encode(decode(image)) = imageПервое сохраняет каждый байт исходника, включая комментарии и окончания строк.
Второе допускает изображение, только если пересоздание даёт те же байты файла.
Команда image inspect выполняет те же полные проверки, прежде чем сообщить идентификаторы и хеши.
Команда image decode записывает восстановленный исходник после успешных проверок.
Разделяйте целостность, подписи и доступ
| Продукт или операция | Что делает |
|---|---|
| Изображение Лиспекса | Переносит доступные для чтения байты исходника в PNG или полном наборе страниц |
image inspect | Сообщает формат, профиль, число страниц, идентификатор исходника и хеши целостности |
image decode | Восстанавливает исходник после всех проверок изображения |
| Ваучер Лиспекса | Связывает идентификатор восстановленного исходника с проверкой производителя, запросом, повторным выполнением и локальным решением о допуске |
| Приложение, распространяющее изображение | Управляет размером на экране, конфиденциальностью передачи и доступом к файлу |
Сохраняйте исходный файл для декодирования, даже если приложение меняет размер изображения на экране. О подписях и политике доверия получателя читайте в обзоре Ваучера.