Online Tool Store Online Tool Store

Generatore BlurHash

Codifica le immagini in stringhe BlurHash. Regola i componenti, decodifica gli hash e verifica gli errori di colore. Funziona completamente nel tuo browser.

Questo strumento funziona interamente nel tuo browser. I tuoi file non vengono mai caricati su un server.

Origine

Placeholder decodificato

Solo in fase di decodifica; non viene memorizzato nell'hash.

Un BlurHash è una stringa che salvi accanto a un'immagine e che espandi in un placeholder sfocato al momento del rendering — così il layout può mostrare qualcosa di sensato prima che arrivi l'immagine vera, senza una seconda richiesta di rete. Il tuo client ha bisogno di un decodificatore per mostrarlo; il pulsante URI di dati ti dà invece un'immagine già pronta, che non richiede un decodificatore ma è più grande. Niente viene caricato.

Come usarlo

  1. Trascina un'immagine, scegli un file o incollane una con Ctrl+V — è già codificato un esempio così vedi subito la forma del risultato.
  2. Lascia il dettaglio a 4 × 3 a meno che tu non abbia un motivo per cambiarlo.
  3. Copia l'hash e conservalo nella stessa riga o record dell'immagine stessa.
  4. Decodificalo nel tuo client, oppure usa i pulsanti per l'URI di dati o il download se preferisci non aggiungere un decodificatore.

Cosa ottieni davvero

La lunghezza è fissata dal numero di componenti: quattro caratteri di intestazione più due per componente. Questo rende la dimensione del tutto prevedibile prima ancora di codificare qualcosa:

1 × 1 6 caratteri colore medio uniforme 3 × 3 22 caratteri aree chiare e scure approssimative 4 × 3 28 caratteri il valore predefinito abituale 9 × 9 166 caratteri rendimenti decrescenti

Ventotto byte sono pochi abbastanza da poter essere inclusi gratis nella risposta JSON che elenca le tue immagini — più piccoli della maggior parte degli header HTTP singoli. È proprio questo il senso del formato: il placeholder arriva insieme ai metadati, nella richiesta che stavi già facendo, quindi non serve un secondo giro prima che la pagina possa mostrare qualcosa. La trasformazione viene inoltre eseguita in luce lineare anziché sui byte sRGB grezzi: mediare direttamente valori codificati in gamma produce esattamente quella sfocatura torbida e troppo scura che a volte si nota. L'effetto è più evidente con un solo componente, dove l'hash non è altro che una media — un gradiente di prova con media dei byte sRGB pari a rgb(130, 110, 95) si decodifica in rgb(147, 116, 103) a 1 × 1, e il risultato lineare è quello fisicamente corretto, corrispondente a ciò che si misurerebbe sfocando una fotocamera puntata sull'immagine. Con più componenti, lo scarto sulla media complessiva si riduce a uno o due livelli su 255.

Domande frequenti

Posso usare l'hash direttamente in un tag <img>?

No, ed è la cosa che sorprende di più. Un BlurHash non è un formato immagine — sono 20-30 caratteri che un decodificatore espande in pixel. La tua app ha bisogno di un decodificatore per mostrarlo. Se vuoi qualcosa che funzioni senza alcun decodificatore, usa invece i pulsanti per l'URI di dati o per il download come PNG: entrambi ti danno un vero PNG del placeholder sfocato, più grande ma pronto per un attributo src o per un file su disco.

Quanti componenti dovrei usare?

Quattro in orizzontale e tre in verticale è l'impostazione predefinita più comune, ed è quella con cui parte questo strumento. Al di sotto si perde il senso della posizione delle cose nell'inquadratura; al di sopra l'hash cresce in fretta per un guadagno visivo molto scarso, dato che il risultato sarà comunque sfocato. Nove per nove sono 166 caratteri — sei volte la lunghezza di un 4×3 per un placeholder che nessuno guarda da vicino.

Perché un hash 1×1 appare più chiaro della mia immagine?

Perché la media è calcolata in luce lineare, non sui byte sRGB. Codificare un gradiente di prova i cui canali sRGB hanno media rgb(130, 110, 95) produce un hash 1×1 che si decodifica in rgb(147, 116, 103). Non è un bug — mediare direttamente valori codificati in gamma lo è, ed è per questo che le miniature mediate in modo ingenuo appaiono spesso torbide. La media lineare è quella percettivamente corretta.

Il cursore del contrasto modifica l'hash?

No. Il «punch» viene applicato in fase di decodifica, quindi la stringa resta identica qualunque valore si imposti. È incluso qui perché la maggior parte delle librerie di decodifica espone lo stesso parametro, ed è utile vederne l'effetto prima di sceglierne un valore nel proprio codice.

Un BlurHash mantiene la trasparenza?

No. Il formato non ha un canale alfa, quindi un PNG trasparente viene codificato come se fosse stato appiattito su ciò che conteneva il canvas. Per immagini con trasparenza reale, un colore segnaposto è di solito una scelta migliore rispetto a una sfocatura.

La mia immagine viene caricata su un server?

No. Viene decodificata, sottocampionata e trasformata nella pagina. Sia l'encoder che il decoder qui presenti sono pura aritmetica eseguita nel tuo browser, senza che venga inviata alcuna richiesta in nessun momento.

Perché mostrare un placeholder sfocato invece di un indicatore di caricamento?

Un placeholder che rispecchia i colori e la composizione generale dell'immagine fa due cose utili. Riserva lo spazio corretto, così nulla si sposta quando l'immagine arriva — la causa principale dei reclami sugli spostamenti di layout nelle pagine ricche di immagini. E dà subito all'occhio qualcosa di plausibile, il che fa percepire il caricamento più breve rispetto a un'attesa equivalente davanti a un riquadro grigio, perché c'è qualcosa da guardare invece che qualcosa da aspettare.

Come ci confrontiamo

FunzionalitàOnline Tool StoreEncoder da riga di comandoPlaceholder dei CDN per immagini
L'immagine non lascia mai il tuo dispositivo ✓ ✓ ✗
Niente da installare ✓ ✗ ✓
Decodifica un hash esistente per verificarlo ✓ Comando separato ✗
Mostra l'errore di colore del round-trip ✓ ✗ ✗
Esporta anche un URI di dati senza decodificatore ✓ Con passaggi extra ✓
Carica un'immagine trascinando, sfogliando o incollando ✓ Solo percorso fileSolo trascinamento o sfoglia
Codifica un'intera libreria in un solo passaggio ✗ ✓ ✓
Si esegue automaticamente al caricamento ✗ ✓ ✓

Usa questo strumento per capire il formato, regolare il numero di componenti e generare hash per un pugno di immagini. Quando inizi a codificare ogni upload, quello appartiene alla tua pipeline — un passaggio di build o un gestore degli upload — non a una scheda del browser. Questo strumento è il posto dove capire cosa vuoi prima di scrivere quel codice.

Esplora strumenti correlati

Incorpora questo strumento

Incolla questo nel tuo sito: resta gratuito e ogni file rimane nel browser del visitatore, non da te né da noi.