# ASCII art

* ____ _____ ______________ ____ ____ ______
* / _ | / ___// ____/ _/ _/ / _ | / __ \/_ __/
* / /_| | \__ \/ / / / / / / /_| | / /_/_/ / /
* / ___ | __/ / /___ / / / / / ___ |/ /| | / /
* /_/ |_//___/\____/___/___/ /_/ |_/_/ |_| /_/
* "Oldskool" o "Amiga" style
* o$ $o
* .o$$$$o. .o$$$$o .s$$$$$o.' `".o$$$$$o..o$$$$$o.o$$$$$o.
* .o `$.$$' . o$ $"'.o $$ .o `$. .o `$$ $$
* .o$$.o$$$`"$$$o. $$ . $$ $$ .o$$.o$$$ $$"o$" $$
* $$ $$ `$$ $$. $o.$$ $$ $$ $%$ $$ $$. $$
* $' $'.o$$$$' `$$$$$$o.' $$ $' $' $$ $$$" `$
* "Newskool" style
* "Block" o "High ASCII" style o più corretto "ANSI" style
L'arte ASCII è un mezzo artistico che si basa principalmente sui computer come supporto di presentazione; consiste in immagini prodotte componendo i 95 caratteri ASCII. In maniera leggermente impropria, il termine viene anche usato per indicare altre forme artistiche basate sull'uso di caratteri tipografici in generale. Immagini d'arte ASCII possono essere create con ogni editor di testo, e sono talvolta usate in combinazione con i linguaggi di programmazione per produrre programmi per computer il cui testo forma un disegno o una immagine. La maggior parte degli esempi di arte ASCII richiedono, per una corretta visualizzazione, l'uso di caratteri a larghezza fissa (come quelli di una tradizionale macchina per scrivere), come ad esempio il Courier.

## Storia

L'uso diffuso dell'arte ASCII può essere ricondotto ai sistemi di bacheca informatici della fine degli anni settanta e dei primi anni ottanta. I limiti dei computer di quel periodo di tempo richiedevano l'uso di caratteri di testo per rappresentare le immagini. Insieme all'uso di ASCII nella comunicazione, tuttavia, iniziò anche ad apparire nei gruppi artistici online clandestini del periodo. Un fumetto ASCII è una forma di fumetto web che utilizza il testo ASCII per creare immagini. Al posto delle immagini in un normale fumetto, viene utilizzata l'arte ASCII, con il testo o la finestra di dialogo solitamente posizionati sotto.
Il termine "PC Block ASCII" o "High ASCII" indica una variante di arte ASCII in cui si fa uso di caratteri con codici a 8 bit (la cosiddetta code page 437 o ANSI X3.16, uno standard proprietario introdotto da IBM nel 1979 per il PC IBM). Questa variante consente di sfruttare circa 100 caratteri in più, ed è stata molto in voga negli anni intorno al 1990 e fino a che la diffusione di Internet e del World Wide Web (che supportava nativamente la grafica) ha soppiantato i BBS testuali come principale mezzo di comunicazione fra appassionati di computer.
All'inizio degli anni novanta, l'uso di "High ASCII" era la norma; l'unico altro stile diffuso in questo periodo, che usava soltanto i caratteri ASCII a 7 bit, è detto "Oldskool" (vecchia scuola) o "AMIGA style" (stile AMIGA), per via della sua origine e del frequente utilizzo sui computer Commodore Amiga. Lo stile "Oldskool" usa principalmente i caratteri
I disegni realizzati con questo stile ricordano più un disegno dei contorni che un'immagine reale.
Durante gli anni novanta, la navigazione grafica e i caratteri a larghezza variabile sono diventati sempre più popolari, portando a un declino nell'arte ASCII. Nonostante ciò, l'arte ASCII ha continuato a sopravvivere attraverso i MUD online, acronimo di "Multi-User Dungeon", (che sono videogiochi di ruolo multiplayer testuali), Internet Relay Chat, e-mail, bacheche e altre forme di comunicazione online che comunemente impiegano la larghezza fissa necessaria.
L'arte ASCII ha avuto origine dalle scarse possibilità grafiche della prima generazione di stampanti: mancando la capacità di stampare immagini, si ricorreva all'uso di caratteri alfabetici come segni grafici. Sempre su queste stampanti, era comune inserire all'inizio di ogni stampa una pagina speciale, detta "banner", contenente il nome dell'utente autore della stampa in grandi caratteri realizzati come arte ASCII. Queste pagine consentivano poi all'operatore di distinguere e separare facilmente le stampe di diversi utenti.
L'arte ASCII è tuttora usata in tutti quei casi in cui è possibile stampare o trasmettere testo ma non grafica, o in cui l'uso della grafica sarebbe eccessivamente complicato o oneroso. Ricadono in questa categoria le macchine per scrivere, le telescriventi, i terminali non-grafici di computer, forme primitive di comunicazione via rete quali i BBS, la posta elettronica, le news Usenet. L'arte ASCII è anche usata talvolta all'interno del codice sorgente di programmi per computer, per rappresentare dei logo di prodotti o società, o per includere diagrammi di controllo di flusso o di altro tipo a scopo di documentazione. In alcuni casi estremi, l'intero codice sorgente del programma costituisce un'immagine.

## Uso

L'uso più estremo dell'arte ASCII è dato dalla riproduzione di video o filmati. Il popolare videogioco Quake dispone di un driver video che consente di visualizzare l'intero videogame in arte ASCII. Più generalmente, per i sistemi Unix-like è disponibile un software libero detto AAlib (ASCII art library) che consente di riprodurre l'output video di qualunque applicazione come arte ASCII. L'uso di caratteri di controllo e sequenze di escape come quelle definite in ANSI X3.64 per lo spostamento del cursore consentono anche di produrre animazioni in arte ASCII (in taluni casi, è necessario rallentare esplicitamente la stampa del testo a video per rendere visibile l'animazione).
È frequente l'uso di questo modo espressivo per arricchire le firme delle e-mail e dei post degli utenti di Usenet.
L'arte ASCII, benché abbia trovato la sua massima diffusione in ambito informatico, non è esclusiva di questo mezzo: un esempio di arte ASCII che precede l'uso dei computer è contenuto nel numero di ottobre 1948 di Popular Mechanics. Nei testi di dattilografia poi erano pure proposte delle esercitazioni per ottenere dei disegni battendo a macchina.
Beck, un cantante pop, nel suo repertorio ha un video della canzone "Black Tambourine" fatto interamente di caratteri ASCII che rappresentano il video originale.
L'Obfuscated C Contest è una competizione annuale fra programmatori nel linguaggio C che gareggiano fra di loro nella produzione di programmi funzionanti ma incomprensibili; è molto frequente che il sorgente del programma sia formattato in modo da rappresentare un'immagine, un diagramma o un simbolo che in qualche modo ricordi la sua funzione.

## Tipi ed esempi di arte ASCII

Le più semplici forme di arte ASCII sono combinazioni di due o tre caratteri per esprimere emozioni in un testo. Esse sono comunemente chiamate emoticon, smile, oppure smiley, poiché la prima combinazione impiegata storicamente in tal senso rappresenta un faccino sorridente. Ruotare gli smile seguenti di 90 gradi in senso orario ne facilita l'assomigliamento a faccine. Le spiegazioni verbali qui addotte non hanno validità universale, ognuno potrebbe usare gli smile a modo suo; similmente alle espressioni facciali, lo smile "sorriso" potrebbe essere impiegato per scherno, e lo smile "triste" per gioco, e l'incertezza aumenta per gli smile meno somiglianti a espressioni facciali.
* :-) oppure :) :-( opp. :( ;-) opp. ;) :-P opp. :p >:( :x :'( :-|
* sorriso triste occhiolino linguaccia arrabbiato acido pianto neutrale
* B-) opp. 8-) :-O opp. :O :-0 opp. :0 :-S opp. :S :D :? XD opp. xD :-* opp. :* %-)
* occhiali da sole grido sorpreso confuso sorriso eh? risata bacio occhioni
* :-I
* sbalordito, a labbra serrate
C'è un altro tipo di arte ASCII su una sola linea che non richiede la rotazione virtuale delle figure, che è largamente conosciuta nel Giappone come Kaoani (lett. "facce di caratteri"). Tradizionalmente, sono chiamate "Visi (facce) ASCII". Possono essere chiamate anche Kirby, come il personaggio di Nintendo, o anche "verticons":
* (^_^) (-_-) (X_X) <(^_^<)^<)
* felice infelice morto malumore
* \(^o^)/ (o.~) d(O.O)b
* gioioso ammiccante pollici in su
* (b_d) <(^_^<) (>^_^)> (o_O) (O_o)
* occhiali pointing / dancing guardar fisso/sopracciglio alzato
* (-_-') (v_v) (~_~) (;_;) (T_T)
* scoraggiato dormiente/ piangere
* occhi bassi
* t(-_-t) (^_o)
* Gesto del dito medio ammiccante/scettico
Gli esempi più complessi usano più linee di testo per formare grandi simboli o figure più complesse. Alcuni esempi comuni:
* o o o o o <o <o> o> o
* .|. \|. \|/ // X \ | <| <|> Macarena ASCII
* (__)
* (oo)
* /-------\/ __ O _ ,__o
* / | || /o)\ /|\ >(o)__ _-\_<,
* * ||----|| \(o/ / \ (_~_/ (*)/'(*)
* '''Toro''' Yin e Yang Persona Anatroccolo Ciclista
* ,-._,-. (\ /) (\/)
* \/)"(\/ (o.O) (..)
* (_o_) |> <| c(")")
* /_|_\*
* Cane Gatto Coniglio
* /| /| | Per favore, |
* ||__|| | non date |
* / O O\__ da mangiare |
* / \ ai troll. |
* / _ \ \ -------------------
* / |\____\ \ ||
* / | | | |\____/ ||
* / \|_|_|/ | __||
* / / \ |____| ||
* | | |// |____ --|
* * _ | |_|_|_| | \-/
* *-- _--\ _ \ // |
* / _ \\ _ // | /
* * / \_ /- | - | |
* * ___ c_c_c_C/ \C_c_c_c____________
* /6 6\ \ /6 6\ \ \ / /
* =\_Y_/= (_ ;\ )) =\_Y_/= \ \ / /
* ^//_/-/__/// (( / ^ \ / o o \
* '"" ""' oo /""\/""\
* Ooo \__/\__/
Un altro esempio intricato che raffigura la facciata di un palazzo:
* /___\
* |___|
* |]_[|
* / I \
* JL/ | \JL
* .-. i | i .-.
* |_| .^. /_\ LJ=======LJ /_\ .^. |_|
* ._/___\._./___\_._._._._.L_J_/.-. .-.\_L_J._._._._._/___\._./___\._._._
* ., |-,-| ., L_J |_| [I] |_| L_J ., |-,-| ., .,
* JL |-O-| JL L_J%%%%%%%%%%%%%%%L_J JL |-O-| JL JL
* IIIIII_HH_'-'-'_HH_IIIIII|_|=======H=======|_|IIIIII_HH_'-'-'_HH_IIIIII_HH_
* ---------------------[_]----\.=I=./----[_]-----------------------
* _/\_ ||\\_I_//|| _/\_ [_]_/_L_J_\_ [_] _/\_ ||\\_I_//|| _/\_ ||\
* |__| ||=/_|_\=|| |__|_|_| _L_L_J_J_ |_|_|__| ||=/_|_\=|| |__| ||-
* |__| |||__|__||| |__[___]__--__===__--__[___]__| |||__|__||| |__| |||
* IIIIIII[_]IIIII[_]IIIIIL___J__II__|_|__II__L___JIIIII[_]IIIII[_]IIIIIIII[_]
* \_I_/ [_]\_I_/[_] \_I_[_]\II/\_\I/_/\II/[_]\_I_/ [_]\_I_/[_] \_I_/ [_]
* ./ \.L_J/ \L_J./ L_JI I/ \I IL_J \.L_J/ \L_J./ \.L_J
* | |L_J| |L_J| L_J| || || |L_J |L_J| |L_J| |L_J
* |_____JL_JL___JL_JL____|-|| || || ||-|_____JL_JL___JL_JL_____JL_J
* AHHHHA
* AHHHHHHA
* AllSTOPllA
* VHHHHHHV
* VHHHHV
È comune mettere questo tipo di disegni nelle firme incluse nelle e-mail e nei messaggi di Usenet. Altre ASCII art ignorano i segni dei caratteri ed invece usano la loro grossezza o luminosità per creare vari gradienti.
* _a,
* _yQa.
* _qTWW(
* je`?QX:
* <d+ -3Wm;
* _qos_s%mWw,
* a2?????TWW(
* sd( -?Qm;.
* .amm; .xmWmc
Un uso diverso dell'arte ASCII consente di creare uno stile tipografico unico, per esempio:
* ___ __,
* ( / ( o _/_ /
* / __, _ _ `. _ _ , / /_
* _/_(_/(_/ /_(/_ (___)/ / /_(_(__/ /_
Il programma Figlet (e altri programmi che supportano questi standard) permettono di disegnare e usare font in arte ASCII:
* _____ ___ ____ _ _
* | ___|_ _/ ___| | ___| |_
* | |_ | | | _| |/ _ \ __|
* | _| | | |_| | | __/ |_
* |_| |___\____|_|\___|\__|

## Cowsay

Cowsay è un programma che genera l'immagine ASCII di una mucca con un messaggio, diffuso nella cultura hacker.
Il comando Unix fortune può essere rediretto nel comando cowsay:

## Video in ASCII art

Il programma libero mplayer permette di vedere i filmati utilizzando come output l'ascii art; è possibile ottenere un risultato sia monocromatico che a colori. Il risultato è ottenuto tramite l'uso delle librerie aa. Sperimentalmente per un certo periodo di tempo lo stesso YouTube consentiva di riprodurre video in ASCII art. La funzionalità è stata introdotta come pesce d'aprile nel 2010: chiamata TEXTp, secondo il testo dello scherzo avrebbe consentito a YouTube di risparmiare 1 $ di costi di banda per ogni secondo di riproduzione.

## Metodi per generare ASCII art

Mentre alcuni preferiscono usare un semplice editor di testo per fare arte ASCII, sono stati sviluppati programmi specializzati (ASCI art editors) che permettono di disegnare linee, rettangoli e riempire aree con testo, come in un normale programma di grafica.
Altri programmi (ASCII art generators) permettono di convertire automaticamente un'immagine in ASCII art, ovvero uno speciale caso di quantizzazione vettoriale. Un metodo è quello di convertire l'immagine in toni di grigio con precisione minore di 8-bit e successivamente assegnare un diverso carattere ad ogni corrispondente valore dei pixel.
Un esempio di immagine convertita, creata usando Ascgen dotNet, è disponibile qui sotto in due versioni, una in bianco e nero (quella a sinistra) ed una colorata (quella a destra), a fianco dell'originale che è quello al centro:

## ASCII a larghezza non fissa

La maggior parte dell'ASCII art viene creata usando font monospace, in cui tutti i caratteri hanno identica larghezza (il Courier New è un tipico esempio). Comunque, la maggioranza dei font più utilizzati nei word processor sono font proporzionali (come Arial o Times New Roman) nei quali i caratteri non hanno tutti la stessa larghezza. L'ASCII art disegnata per un dato font apparirà distorta o addirittura irriconoscibile quando visualizzata in un font proporzionale.
Alcuni artisti ASCII hanno prodotto opere visualizzabili con questo tipo di caratteri. Questa ASCII art, più che usare una rigorosa corrispondenza basata sulle tonalità, usa i caratteri per rappresentare gradienti e bordi, ed usa il block shading. Questa ASCII art generalmente offre una maggiore precisione ed attenzione al dettaglio delle ASCII art a larghezza fissa che usano un numero minore di caratteri, sebbene non sia accessibile a tutti essendo di solito correlata a specifici font.

## Altre arti basate su testo

C'è una varietà di altri tipi di arte che usa simboli testuali da set di caratteri oltre che quello ASCII e/o alcune forme di codifica del colore. Malgrado non siano ASCII puri, sono spesso anche questi chiamati "ASCII art". La porzione del set di caratteri specificatamente designata per il disegno è conosciuta come i caratteri di disegno lineari o pseudo-graphics.

### IBM PC

L'hardware grafico di IBM PC in modo testuale usa 16 bit per carattere. Supporta una varietà di configurazioni, ma nel suo modo originale sotto DOS sono utilizzati per fornire 256 glyphs da una delle pagine codice di IBM PC (Code page 437 per impostazione predefinita), 16 colori frontali, 8 colori di sfondo, e una opzione di lampeggiamento. Tale arte può essere caricata nella memoria video direttamente. ANSI.SYS, se caricato, permette inoltre a tale arte di essere posizionata sullo schermo tramite sequenze di escape che indicano movimenti del cursore e cambi di colore/lampeggiamento. Se questo metodo è utilizzato allora tale arte viene conosciuta come ANSI art. Il codice pagina di IBM PC include inoltre caratteri predisposti per un facile disegno che spesso fanno apparire questa arte più pulita rispetto a quella fatta con il tradizionale set di caratteri. I file di testo sono anch'essi visualizzati con questo tipo di caratteri, sebbene sono divenuti molto meno comuni da quando gli editor testuali della GUI di Windows (Usando il Windows ANSI code page) hanno largamente rimpiazzato quelli basati su DOS.

### Shift_JIS

Shift_JIS un formato comune per l'arte basata su testo su Internet. Una grande selezione di caratteri, il largo uso del Giapponese in internet, e la disponibilità di font standard a spaziatura predicibile fa dello Shift_JIS un comune formato per l'arte testuale in Internet.

### Unicode

Unicode sembrerebbe offrire la massima flessibilità nel produrre arte basata sul testo con la sua enorme varietà di caratteri. Comunque, trovare un opportuno font a larghezza fissa è molto difficile se si desidera ottenere un significante sotto-set di Unicode. Inoltre, la comune pratica di visualizzare Unicode con una miscela di font a grandezza variabile, rende arduo ottenere un display predicibile se più di un piccolo sotto-set di Unicode viene utilizzato.

### Overprinting

Negli anni settanta e primi anni ottanta era abbastanza popolare produrre un tipo di arte ASCII che si basava sull'uso massiccio di sovrastampe — la sicurezza globale di un particolare spazio di caratteri dipendeva da quanti caratteri, e dal tipo di caratteri, erano stampati nella stessa posizione. Grazie alla crescente granularità del grigio, i fotografi utilizzavano spesso questo tipo di stampa. Potevano essere utilizzate addirittura stampanti manuali o stampanti a margherita. La tecnica non è più popolare poiché tutte le stampanti economiche possono facilmente stampare fotografie, ed un normale file di testo (o un messaggio di posta elettronica o un post di Usenet) non può rappresentare testo da sovrastampare. Comunque qualcosa di simile è emerso per rimpiazzare l'Overprinting: L'Arte ASCII ombreggiata o colorata, usando un terminale video ANSI o codice di colori (come quelli trovati nell'HTML, IRC, e molti message boards di internet) per aggiungere un pizzico di ulteriore variazione del grigio. In questo modo, è possibile creare arte ASCII dove i caratteri differiscono solo nel colore.

### Visualizza i blocchi ASCII e ANSI in Windows

Puoi vedere blocchi ASCII sotto Microsoft Windows dal prompt dei comandi di MS DOS. Basta andare (tramite una finestra di MS DOS Window) nella directory dove i file ASCII sono posizionati e premere: "type <nome_del_file>". Questo non funziona con i file ANSI di solito. Devi abilitare il driver "ANSI.SYS" per MS DOS Windows prima. Necessita solamente di una semplice aggiunta al file "Config.nt" nella directory system32 (Windows XP).
* apri il prompt dei comandi di MS DOS
* vai nella directory SYSTEM32 all'interno della tua directory di windows (<windrive>:\<windir>\system32\)
* scrivi: edit config.nt
* inserisci la seguente linea alla fine del file: device=%SystemRoot%\system32\ansi.sys
* premi ALT-f e poi "s" (salva i cambiamenti)
* premi ALT-f e poi "x" (per chiudere l'editor)
* riaccendi il tuo computer
Dopo la riaccensione il "type <nome_del_file>" dovrebbe mostrare i file ANSI (*.ans) correttamente.
Microsoft Windows non supporta l'ANSI Standard x3.16.
Per visualizzare disegni in "PC Block ASCII" con questo sistema operativo occorre usare un editor di testi che supporti il font "Terminal", oppure un programma specifico come ACiDView for Windows.