Песочница

Формат и безопасность изображений

Выберите входной PNG или ZIP и изучите формат, лимиты ресурсов и проверки целостности изображений Лиспекса.

Выберите входной файл

Руководство по изображениям создаёт 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Восстанавливает исходник после всех проверок изображения
Ваучер ЛиспексаСвязывает идентификатор восстановленного исходника с проверкой производителя, запросом, повторным выполнением и локальным решением о допуске
Приложение, распространяющее изображениеУправляет размером на экране, конфиденциальностью передачи и доступом к файлу

Сохраняйте исходный файл для декодирования, даже если приложение меняет размер изображения на экране. О подписях и политике доверия получателя читайте в обзоре Ваучера.