Команды decode и info
Эти две команды работают с хешем, который у вас уже есть. decode показывает, как выглядит хеш, а info объясняет, что в нём лежит. Обе принимают хеш аргументом или -, чтобы прочитать его из стандартного ввода. Установка и общие опции описаны на странице Команда encode.
decode
Восстанавливает размытое превью из хеша. Без --output превью рисуется в терминале цветными полублоками, поэтому нужен цветной терминал. С --output оно сохраняется картинкой, и для этого нужен sharp.
hazehash decode <hash> [options]Пример — посмотреть хеш в терминале:
hazehash decode Ed7UwRWKKv5znm6a7sC1tziHDNpMuCikxrYpIgПример — сохранить как изображение:
hazehash decode Ed7UwRWKKv5znm6a7sC1tziHDNpMuCikxrYpIg -o preview.png --scale 8✔ saved preview.png 256×200 px from a 32×25 previewОпции
-o, --output <file>
Сохраняет превью картинкой вместо рисования в терминале. Формат определяется расширением: .png, .webp или .jpg.
-s, --size <px>
Длинная сторона декодированного превью, 4–128. По умолчанию 32.
--scale <n>
Вместе с --output увеличивает сохраняемое изображение в n раз с плавной интерполяцией, 1–32. По умолчанию 8. Превью это всего несколько десятков пикселей, поэтому файл с масштабом 1 крошечный.
hazehash decode Ed7UwRWKKv5znm6a7sC1tziHDNpMuCikxrYpIg -o p2.webp -s 64 --scale 4✔ saved p2.webp 256×196 px from a 64×49 preview--no-dither
Отключает детерминированный дизеринг, который скрывает полосы.
Значение, которое не является хешем
hazehash decode zzz✖ this is not a HazeHash: its length is not valid (a hash has at least 10 characters)Команда завершается с кодом 1.
info
Читает только заголовок хеша и объясняет его: размер, соотношение сторон, сколько частотных компонент хранится для яркости и цвета, средний цвет и есть ли прозрачность.
hazehash info <hash> [options]Пример:
hazehash info Ef90QP3dAP7_773v3y-6uqjYQIqBEaRAVVEpEAHazeHash info
Hash Ef90QP3dAP7_773v3y-6uqjYQIqBEaRAVVEpEA
Size 28 bytes 38 characters in base64url; header 7 B + data 21 B
Format version 1 the only version so far
Aspect ratio 13:10 (1.30) placeholder is drawn 32×25 at 32 px; page layout should use the real image size
Transparency none the preview is opaque
Brightness grid 8×8 frequency components across × down; more means finer structure
Colour grid 3×4 colour needs fewer components than brightness
Coefficients 79 stored detail values after the header; a cut hash simply keeps fewer
Average colour #8c898e OKLab L 0.63, a 0.01, b -0.01
Entropy coding Rice k = 0, 0, 0 bits per value group for L, a, b (and alpha)Вывод команды на английском: так он выглядит у самой утилиты.
Опции
--json
Выводит те же факты в формате JSON, для скриптов.
hazehash info Ed7UwRWKKv5znm6a7sC1tziHDNpMuCikxrYpIg --json{
"hash": "Ed7UwRWKKv5znm6a7sC1tziHDNpMuCikxrYpIg",
"characters": 38,
"bytes": 28,
"headerBytes": 7,
"dataBytes": 21,
"version": 1,
"aspectRatio": 1.2968,
"nearestRatio": "13:10",
"alpha": false,
"lumaGrid": [6, 8],
"chromaGrid": [2, 3],
"alphaGrid": null,
"storedCoefficients": 54,
"averageColor": "#988e7e",
"averageOklab": [0.651, 0.005, 0.025],
"riceParameters": [1, 1, 1],
"scaleCodes": [11, 1, 4]
}lumaGrid и chromaGrid это числа частотных компонент по горизонтали и вертикали для яркости и для двух цветовых каналов. alphaGrid равен null для хеша без прозрачности. storedCoefficients считает значения деталей после заголовка, а riceParameters и scaleCodes описывают, как квантуется и кодируется каждый канал; см. Формат хеша.