本文へスキップ

BlurHash / ThumbHash 生成

BlurHash / ThumbHash

画像を短いBlurHashまたはThumbHashの文字列に符号化し、読み込み中の仮表示に使えるようにします。

BlurHashは20文字あまりで、ぼかした画像にデコードされます。URLの隣のデータベースの列に収まり、同じJSONに載って旅ができるほど短いので、写真が届く前にレイアウトが見分けの付くものを出せます。

🔒 ブラウザの中だけで動きますblurhashplaceholderwebperformance
塗り
1200×630 のプレースホルダー

SVG data URI

580 byte

base64 ではなくパーセントエンコードです。25% ほど小さく、しかも読めます。そのまま貼り付けてください: background-image: url("…")

使い方

  1. 画像を置くか、ハッシュを貼ります

    同じパネルで両方向に働きます。画像を入れればハッシュが、ハッシュを入れればデコードしたプレビューが出ます。

  2. 成分の数を選びます

    ハッシュは4 + 2·x·y文字なので、4×3なら28文字です。成分が多いほど細かくなり、文字列も長くなります。4×3がよくある初期値です。

  3. 平坦な写真にはpunchを使います

    平均の色を動かさずに変動の幅だけを広げるので、そのままでは平らな長方形にデコードされてしまう低コントラストの画像を救います。

よくある質問

なぜ元画像を先に32pxまで縮めるのですか

その周波数より上は、どのみち変換が捨ててしまうからです。原寸で符号化しても、同じ28文字を出すために1億回の基底の評価を費やすだけです。

平均の色だけが必要です

ハッシュの先頭6文字を取ってください。符号化されているのがまさにそれなので、背景色しか要らないページは、何もデコードしなくて済みます。

BlurHashとThumbHashのどちらを使いますか

どこにでもライブラリがあるのはBlurHashで、このページが吐くのもそれです。ThumbHashは同じ品質でより短く、アルファも運びますが、どちらにせよクライアント側にデコーダーが要ります。いま使っている構成にあるほうを選んでください。

ここから渡せます

次の一手

このツールが出したものをそのまま受け取れる道具です。