Aller au contenu

BlurHash et ThumbHash

BlurHash / ThumbHash

Encode une image en une courte chaîne BlurHash ou ThumbHash, à afficher pendant le chargement de la vraie image.

Un BlurHash, c’est une vingtaine de caractères qui se décodent en une version floutée d’une image — assez court pour tenir dans une colonne de base de données à côté de l’URL et voyager dans le même JSON, si bien que la mise en page peut montrer quelque chose de reconnaissable avant l’arrivée de la photo.

🔒 Fonctionne entièrement dans votre navigateurblurhashplaceholderwebperformance
Remplissage
Image de remplacement de 1200 sur 630

Data URI SVG

580 o

Encodé en pourcents plutôt qu’en base64 : environ 25 % plus petit, et toujours lisible. Collez-le directement dans background-image: url("…")

Comment s’en servir

  1. Déposez une image, ou collez un hash

    Les deux sens fonctionnent sur le même panneau : une image vous donne un hash, un hash vous donne l’aperçu décodé.

  2. Choisissez le nombre de composantes

    Un hash fait 4 + 2·x·y caractères, donc 4 × 3 en fait 28. Plus de composantes veut dire plus de détail et une chaîne plus longue ; quatre par trois est la valeur par défaut habituelle.

  3. Utilisez le punch sur une photo terne

    Il augmente la variation sans déplacer la couleur moyenne, ce qui rattrape une image peu contrastée qui se décoderait sinon en rectangle uni.

Questions fréquentes

Pourquoi la source est-elle d’abord réduite à 32 px ?

Parce que tout ce qui est au-dessus de cette fréquence est de toute façon écarté par la transformation. Encoder en pleine résolution dépense cent millions d’évaluations de base pour produire les mêmes 28 caractères.

Il me faut seulement une couleur moyenne.

Prenez alors les six premiers caractères du hash — c’est exactement ce qu’ils encodent, si bien qu’une page qui n’a besoin que d’une couleur de fond n’a rien à décoder.

BlurHash ou ThumbHash ?

Le BlurHash est celui qui a des bibliothèques partout, et c’est celui que cette page produit. Le ThumbHash est plus court à qualité égale et transporte l’alpha, mais il vous faut un décodeur côté client dans les deux cas — prenez celui que votre pile a déjà.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.