Vai al contenuto

BlurHash e ThumbHash

BlurHash / ThumbHash

Codifica un’immagine in una breve stringa BlurHash o ThumbHash da usare come segnaposto durante il caricamento.

Un BlurHash è una ventina scarsa di caratteri che si decodificano in una versione sfocata di un'immagine: abbastanza corti da stare in una colonna di database accanto all'indirizzo e da viaggiare nello stesso JSON, così l'impaginazione può mostrare qualcosa di riconoscibile prima che la fotografia arrivi.

🔒 Funziona interamente nel tuo browserblurhashplaceholderwebperformance
Riempimento
Segnaposto da 1200 per 630

Data URI SVG

580 byte

Codificato in percentuale anziché in base64: circa il 25% più piccolo, e resta leggibile. Incollalo direttamente in background-image: url("…")

Come si usa

  1. Trascinare un'immagine, oppure incollare un hash

    Le due direzioni funzionano nello stesso pannello: da un'immagine si ottiene un hash, da un hash l'anteprima decodificata.

  2. Scegliere il numero di componenti

    Un hash è lungo 4 + 2·x·y caratteri, quindi 4×3 fa 28. Più componenti vuol dire più dettaglio e una stringa più lunga; quattro per tre è il valore abituale.

  3. Usare il punch su una fotografia piatta

    Scala la variazione senza spostare il colore medio, e salva così un'immagine a basso contrasto che altrimenti si decodificherebbe in un rettangolo piatto.

Domande frequenti

Perché la sorgente viene prima rimpicciolita a 32 px?

Perché tutto quello che sta sopra quella frequenza viene comunque scartato dalla trasformazione. Codificare a piena risoluzione spende cento milioni di valutazioni delle funzioni di base per produrre gli stessi 28 caratteri.

Mi serve soltanto un colore medio.

Allora bastano i primi sei caratteri dell'hash: è esattamente quello che codificano, quindi una pagina a cui serve solo un colore di sfondo non deve decodificare niente.

BlurHash o ThumbHash?

Il BlurHash è quello con le librerie dappertutto ed è quello che questa pagina emette. Il ThumbHash è più corto a parità di qualità e porta con sé l'alfa, ma in tutti e due i casi serve un decodificatore sul client: conviene scegliere quello che il proprio stack ha già.

Può ricevere da

Dopo

Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.