Online Tool Store Online Tool Store

Генератор BlurHash

Кодуйте зображення в BlurHash для швидкого завантаження. Налаштуйте компоненти, декодуйте геші та перевірте помилки кольору. Працює в браузері.

Цей інструмент працює повністю у вашому браузері. Ваші файли ніколи не завантажуються на сервер.

Джерело

Декодована заглушка

Лише при декодуванні; не зберігається в хеші.

BlurHash — це рядок, який ви зберігаєте поруч із зображенням і розгортаєте в розмиту заглушку під час рендерингу — щоб макет міг показати щось осмислене до того, як прийде справжнє зображення, без другого мережевого запиту. Вашому клієнту потрібен декодер, щоб його показати; кнопка data URI натомість дає готове зображення, яке не потребує декодера, але займає більше місця. Нічого не завантажується.

Як цим користуватися

  1. Перетягніть зображення, виберіть файл або вставте його комбінацією Ctrl+V — приклад уже закодовано, щоб одразу побачити форму результату.
  2. Залиште деталізацію 4 × 3, якщо немає причин її змінювати.
  3. Скопіюйте хеш і збережіть його в тому самому рядку чи записі, що й саме зображення.
  4. Декодуйте його у своєму клієнті або скористайтеся кнопками data URI чи завантаження, якщо не хочете додавати декодер.

Що ви насправді отримуєте

Довжина фіксована кількістю компонентів: чотири символи заголовка плюс два на кожен компонент. Це робить розмір повністю передбачуваним ще до кодування:

1 × 1 6 символів суцільний середній колір 3 × 3 22 символи приблизні світлі й темні ділянки 4 × 3 28 символів звичайне значення за замовчуванням 9 × 9 166 символів спадна віддача

Двадцять вісім байтів — це достатньо мало, щоб безкоштовно включити їх у JSON-відповідь зі списком ваших зображень — менше, ніж більшість окремих HTTP-заголовків. У цьому весь сенс формату: заглушка приходить разом із метаданими, у тому самому запиті, який ви й так робили, тож не потрібен другий цикл, перш ніж сторінка зможе щось показати. Перетворення також виконується в лінійному світлі, а не на вихідних байтах sRGB: пряме усереднення гамма-кодованих значень дає саме те каламутне, надто темне розмиття, яке іноді помітно. Ефект найкраще видно при одному компоненті, де хеш — це просто середнє значення: тестовий градієнт із середнім байтів sRGB rgb(130, 110, 95) при 1 × 1 декодується в rgb(147, 116, 103), і саме лінійний результат фізично правильний — він відповідає тому, що ви виміряли б, розфокусувавши камеру, спрямовану на зображення. За більшої кількості компонентів різниця в загальному середньому скорочується приблизно до одного-двох рівнів із 255.

Поширені запитання

Чи можна використати хеш прямо в тегу <img>?

Ні, і це найчастіше дивує людей. BlurHash — не формат зображення: це 20-30 символів, які декодер розгортає в пікселі. Вашому застосунку потрібен декодер, щоб його показати. Якщо потрібно щось, що працює зовсім без декодера, скористайтеся кнопками data URI або завантаження в PNG: обидві дають справжній PNG розмитої заглушки — більший за розміром, але одразу придатний для атрибута src або файлу на диску.

Скільки компонентів варто використовувати?

Чотири по горизонталі й три по вертикалі — звичайне значення за замовчуванням, з якого починає цей інструмент. Менше — втрачається відчуття розташування об'єктів у кадрі; більше — хеш швидко зростає за дуже невеликого видимого виграшу, адже результат все одно буде розмитим. Дев'ять на дев'ять — це 166 символів, у шість разів більше, ніж 4×3, для заглушки, на яку ніхто уважно не дивиться.

Чому хеш 1×1 виглядає світлішим за моє зображення?

Тому що середнє обчислюється в лінійному світлі, а не за байтами sRGB. Кодування тестового градієнта, канали sRGB якого в середньому дають rgb(130, 110, 95), дає хеш 1×1, що декодується в rgb(147, 116, 103). Це не помилка — помилкою було б пряме усереднення гамма-кодованих значень, і саме тому наївно усереднені мініатюри часто виглядають каламутними. Лінійне середнє — те, що сприймається правильно.

Чи змінює повзунок контрасту хеш?

Ні. Значення «punch» застосовується лише при декодуванні, тож рядок залишається однаковим незалежно від встановленого значення. Його додано тут, бо більшість бібліотек-декодерів надають той самий параметр, і корисно побачити його ефект перед вибором значення у власному коді.

Чи зберігає BlurHash прозорість?

Ні. У формату немає альфа-каналу, тож прозорий PNG кодується так, ніби його звели на те, що було на полотні. Для зображень зі справжньою прозорістю колір-заглушка зазвичай є кращим вибором, ніж розмиття.

Чи завантажується моє зображення кудись?

Ні. Воно декодується, зменшується та перетворюється прямо на сторінці. І кодер, і декодер тут — це чиста арифметика, що виконується у вашому браузері, без жодного надісланого запиту.

Чому показується розмита заглушка, а не індикатор завантаження?

Заглушка, що відповідає кольорам і загальній композиції зображення, робить дві корисні речі. Вона резервує правильний простір, тож коли зображення з'являється, нічого не зсувається — це головна причина скарг на зсуви макета на сторінках із великою кількістю зображень. І вона одразу дає оку щось правдоподібне, через що завантаження здається коротшим за таке саме за тривалістю очікування перед сірим прямокутником, адже є на що дивитися, а не лише чого чекати.

Як ми порівнюємося

ФункціяOnline Tool StoreКодувальники командного рядкаЗаглушки CDN зображень
Зображення ніколи не покидає ваш пристрій ✓ ✓ ✗
Нічого встановлювати не потрібно ✓ ✗ ✓
Декодує наявний хеш для перевірки ✓ Окрема команда ✗
Показує похибку кольору при зворотному перетворенні ✓ ✗ ✗
Також експортує data URI без декодера ✓ З додатковими кроками ✓
Завантажує зображення перетягуванням, вибором файлу або вставкою ✓ Лише шлях до файлуЛише перетягування або вибір
Кодує цілу бібліотеку за один прохід ✗ ✓ ✓
Запускається автоматично під час завантаження ✗ ✓ ✓

Використовуйте це, щоб зрозуміти формат, підібрати кількість компонентів і згенерувати хеші для кількох зображень. Коли ви почнете кодувати кожне завантажене зображення, це місце у вашому конвеєрі — на етапі збірки або в обробнику завантаження — а не у вкладці браузера. Цей інструмент потрібен, щоб визначити, чого ви хочете, перш ніж писати цей код.

Схожі інструменти

Вбудувати цей інструмент

Вставте це на свій сайт — він залишиться безкоштовним, і кожен файл усе одно залишається в браузері відвідувача, а не у вас чи в нас.