Generatore di Arte ASCII (Immagine in Testo)

Trasforma qualsiasi foto in arte ASCII — larghezza e densità dei caratteri regolabili, output di testo monocromatico da copiare o scaricare.

1.160 visualizzazioni

100

Come Funziona

Il generatore disegna la tua immagine su un canvas, poi la divide in una griglia di celle di campionamento e calcola la luminosità media (luminanza) di ciascuna. Quel valore di luminosità viene mappato su una scala di densità di caratteri predefinita — qualcosa come @%#*+=-:. — che va da caratteri visivamente densi e scuri (@) fino a caratteri radi e chiari (un punto o uno spazio semplice). Una cella quasi nera diventa @, una cella quasi bianca diventa uno spazio, e tutto ciò che sta nel mezzo finisce in un punto della scala proporzionale alla sua luminosità misurata. Il colore viene scartato in questo passaggio — solo la luminanza, non la tonalità, determina quale carattere viene scelto.

C'è una particolarità: i caratteri a larghezza fissa sono rettangoli alti, non quadrati, quindi mappare un pixel su un carattere allungherebbe verticalmente il risultato rispetto alla foto originale. Lo strumento corregge questa discrepanza di proporzioni campionando all'incirca il doppio delle righe rispetto alle colonne — un carattere per pixel in orizzontale, un carattere ogni due pixel in verticale — il che mantiene le proporzioni dell'arte ASCII finale vicine all'immagine originale invece di farla apparire artificialmente alta e stretta.

Come esempio concreto, una foto campionata fino a una larghezza di output di 100 caratteri produce circa 100 colonne per 60-70 righe una volta applicata la correzione verticale 2:1 — abbastanza piccola da poter essere incollata direttamente in un file di testo semplice, un'email o un terminale, pur restando riconoscibile, perché la mappatura della densità dei caratteri preserva lo schema generale di chiaro-scuro dell'originale anche se ogni traccia di colore è scomparsa.

Cose da Sapere

Tutto avviene lato client: la foto viene disegnata su un elemento <canvas> in memoria e riletta pixel per pixel con JavaScript, quindi nulla viene mai trasmesso a un server. Puoi regolare la larghezza dell'output per bilanciare dettaglio e dimensione — una larghezza ridotta produce un risultato compatto e più astratto, mentre una larghezza ampia preserva dettagli più fini a costo di un blocco di testo molto più grande — e invertire la scala di densità a seconda che il risultato venga visualizzato su uno sfondo scuro (un terminale) o uno chiaro (una pagina stampata o un documento bianco).

Domande Frequenti

Perché l'output appare allungato o schiacciato?

I caratteri a larghezza fissa sono più alti che larghi, quindi lo strumento compensa campionando circa il doppio delle righe rispetto a una normale griglia di pixel — questo mantiene le proporzioni vicine all'immagine originale. Senza questa correzione, una foto quadrata apparirebbe visibilmente alta e stretta una volta resa in un font a larghezza fissa.

Come decide lo strumento quale carattere usare per ogni parte dell'immagine?

Calcola la media della luminosità di ogni cella campionata e mappa quel valore su una scala di densità fissa di caratteri ordinati da visivamente densi (come @ o #) a radi (come . o uno spazio) — le aree più scure ricevono caratteri dall'aspetto più denso, le aree più chiare quelli più radi. Per questa mappatura viene usata solo la luminanza; il colore originale di ciascuna regione non influisce sul carattere scelto.

Devo invertire la scala dei caratteri?

Se visualizzerai il risultato su uno sfondo scuro (come un terminale), mantieni l'impostazione predefinita. Se lo incollerai su uno sfondo chiaro (come un documento bianco), invertila così le zone scure restano visivamente "più pesanti" — altrimenti la relazione tonale si inverte e l'immagine può assomigliare a un negativo fotografico dell'originale.

L'immagine viene caricata da qualche parte?

No — l'immagine non lascia mai il tuo browser. Viene disegnata su un elemento canvas locale e campionata interamente lato client, allo stesso modo in cui funziona qualsiasi altro strumento di modifica immagini nel browser senza andata e ritorno verso un server.

Perché una larghezza di output maggiore produce un risultato più dettagliato?

La larghezza controlla in quante celle di campionamento viene divisa l'immagine — più celle significa che ciascuna copre una porzione più piccola della foto originale, quindi la luminosità viene misurata con una granularità più fine e i piccoli dettagli (un occhio, il bordo di una foglia, una texture fine) sopravvivono alla conversione invece di essere mediati via in un unico carattere piatto.

Commenti

Ancora nessun commento — scrivi il primo!

Strumenti Simili