Skip to content

Команды decode и info ​

Эти две команды работают с хешем, который у вас уже есть. decode показывает, как выглядит хеш, а info объясняет, что в нём лежит. Обе принимают хеш аргументом или -, чтобы прочитать его из стандартного ввода. Установка и общие опции описаны на странице Команда encode.

decode ​

Восстанавливает размытое превью из хеша. Без --output превью рисуется в терминале цветными полублоками, поэтому нужен цветной терминал. С --output оно сохраняется картинкой, и для этого нужен sharp.

bash
hazehash decode <hash> [options]

Пример — посмотреть хеш в терминале:

bash
hazehash decode Ed7UwRWKKv5znm6a7sC1tziHDNpMuCikxrYpIg

Пример — сохранить как изображение:

bash
hazehash decode Ed7UwRWKKv5znm6a7sC1tziHDNpMuCikxrYpIg -o preview.png --scale 8
text
✔ 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 крошечный.

bash
hazehash decode Ed7UwRWKKv5znm6a7sC1tziHDNpMuCikxrYpIg -o p2.webp -s 64 --scale 4
text
✔ saved p2.webp 256×196 px from a 64×49 preview

--no-dither ​

Отключает детерминированный дизеринг, который скрывает полосы.

Значение, которое не является хешем ​

bash
hazehash decode zzz
text
✖ this is not a HazeHash: its length is not valid (a hash has at least 10 characters)

Команда завершается с кодом 1.

info ​

Читает только заголовок хеша и объясняет его: размер, соотношение сторон, сколько частотных компонент хранится для яркости и цвета, средний цвет и есть ли прозрачность.

bash
hazehash info <hash> [options]

Пример:

bash
hazehash info Ef90QP3dAP7_773v3y-6uqjYQIqBEaRAVVEpEA
text
HazeHash 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, для скриптов.

bash
hazehash info Ed7UwRWKKv5znm6a7sC1tziHDNpMuCikxrYpIg --json
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 описывают, как квантуется и кодируется каждый канал; см. Формат хеша.