# ASCII-Art

ASCII-Art (englisch für ASCII-Kunst) ist eine Kunstrichtung, die mit Buchstaben, Ziffern und Sonderzeichen einer nicht-proportionalen Schrift kleine Piktogramme oder ganze Bilder darstellt. Auf Computern eignet sich der ASCII-Zeichensatz hierfür besonders, da er weltweit auf nahezu allen Systemen verfügbar ist. Vor dem Aufkommen der Computer gab es bereits Schreibmaschinenkunst (englisch Typewriter Art), bei der mittels Schreibmaschine oder Fernschreiber Bilder erzeugt wurden. Der US-Amerikaner Paul Smith gilt hier als künstlerischer Vorreiter.
Mittlerweile existieren aber auch spezialisierte Programme, die das Zeichnen erleichtern und mit denen sich auch Animationen gestalten lassen. Moderne Programme nutzen zudem Unicode, nicht ASCII.

## Geschichte

Vor der Einführung von grafikfähigen PCs war die ASCII-Art die einzige Möglichkeit zur Schaffung von Bildelementen und Illustrationen und vor allem in Mailboxen weit verbreitet. Es stehen dabei nur die 128 ASCII-Zeichen zur Verfügung, was bedeutet, dass z. B. Umlaute und viele Sonderzeichen nicht verwendet werden können. Erweiterungen des ASCII-Zeichensatzes auf 256 Zeichen sind betriebssystem- oder länderspezifisch und damit nicht mehr global anwendbar.
Frühe Beispiele nach diesem Schema wurden bereits in den 1940er Jahren und zuvor mit Setzkästen oder mechanischen Schreibmaschinen in mühevoller Kleinarbeit erstellt. Zur Vervielfältigung diente zunächst Kohlepapier und später auch Fotokopiergeräte. Einen ersten Höhepunkt erlebte das Genre mit der Verbreitung des Fernschreibers, da die Grafiken dort auf Lochstreifen gespeichert und an andere verschickt werden konnten, die ihrerseits die Grafik beim Empfang auf Lochstreifen „mitlochen“ konnten. In den 1970er Jahren war das Erstellen großformatiger ASCII-Bilder ein beliebter Zeitvertreib an Großrechnern.

## Formen der ASCII-Art

* ASCII-Art ist in Signaturen von E-Mails oder Usenet-Postings sehr gebräuchlich und im Weitesten mit Emoticons vergleichbar.
* Eine Variante der ASCII-Art ist die ANSI-Art, bei der mittels ANSI-Escapesequenzen auf dem Computer-Bildschirm sowohl farbige als auch animierte, auf dem Zeichensatz basierende Grafiken generiert werden können. Im Gegensatz zur ursprünglichen ASCII-Art können ANSI-Grafiken normalerweise nicht auf einem Drucker ausgegeben werden.
* Eine ASCII-Grafik sollte nicht breiter als 80 Zeichen sein, da dies oft die maximale Buchstabenzahl je Zeile ist, die auf Textbildschirmen (Terminals) oder Zeilendruckern korrekt dargestellt werden kann.
* Es existiert auch ein Perl-Script, das in Form einer ASCII-Grafik formatiert ist und beim Ablauf sich selbst wiederum als ASCII-Bild ausgibt.
* Eine verwandte Methodik ist die Komposition von Großbildern durch die Auswahl von geeigneten Kleinbildern für die „Pixel“, wie sie etwa beim Linux Image Montage Projekt (LIMP) eingesetzt wird.

## Beispiele
### Allgemeine Beispiele

Die Kuh wird angezeigt, wenn man unter Systemen mit dem Debian-Paketverwalter apt den Befehl „apt-get moo“ eingibt (siehe auch Easter Egg).

### Beispiele aus dem Usenet

Bei vielen nicht-trivialen ASCII-Werken ist es üblich, eine Signatur in die Grafik einzubauen, hier SSt, Kürzel eines Autors. Es gilt als zum guten Ton gehörend, solche Signaturen bei einer Weiterverbreitung der Grafik niemals zu entfernen, zumal ASCII-Art von vielen Autoren als urheberrechtlich geschütztes Werk angesehen wird. Ob und ab welcher Komplexität oder Originalität ein solches Werk schützbar ist, ist nicht geklärt.
Um einer Inflation immer größerer Grafiken in den Signaturen von Usenet-Postings vorzubeugen, gilt es als netiquettekonform, nicht mehr als vier Zeilen automatisch anzuhängen. Hieraus ergibt sich die Schwierigkeit, mit nur relativ wenigen Zeichen aussagekräftige Bilder zu erzeugen, wie bei dieser Vier-Zeilen-Grafik, die eine Katze darstellt:
Anstatt nur die Umrisse darzustellen, gibt es auch die Möglichkeit, flächig zu arbeiten. Dabei kann man mit verschiedenen Zeichen Hell- und Dunkel-Effekte erzielen.

### Einzeilige ASCII-Art

Einzeilige ASCII-Art kann wie Emoticons in Fließtext eingebaut werden. Ein durch ASCII-Art ausgedrückter zugeworfener roter Hering ist eine typische Antwort auf den Beitrag eines Trolls. Er soll die Wertlosigkeit seines Beitrags unterstreichen:
Ein weiteres Beispiel ist die Rose, die als Text gewordener Blumengruß verwendet wird:

### Schaltpläne

Da es im Usenet oft nicht möglich ist, Binärdateien anzuhängen, werden z. B. in Elektronikgruppen ASCII-Zeichnungen für die Darstellung von Schaltplänen verwendet. Somit ist auch kein externes Anzeigeprogramm oder ein Browser-Plugin erforderlich. Folgendes Beispiel zeigt einen Multivibrator (astabile Kippstufe):
Es gibt keine festen Regeln, wie Schaltzeichen optimal in ASCII-Grafiken darzustellen sind. Je nach Platzbedarf verwendet man möglichst geeignete Anlehnungen, teils aber auch eigene Erfindungen oder ältere Formen, die nicht den heutigen Standards genügen, die aber leichter in ASCII darstellbar sind.
Eine andere, raumsparende Darstellung zu obigem Beispiel ist:
Als weiteres Beispiel aus der Beschaltung von Scartkabeln (komplett ausgeführte Versionen siehe dort):
Beispiel Logikgatter nach DIN 40700 (vor 1976) statt der aktuellen IEC 60617-12
Im Vergleich: Mit Logisim erstellter Schaltplan eines Volladdierers und der dazugehörige ASCII-Art-Schaltplan.
| Volladdierer | O-+---|>o-|‾\ | | |-+ | +-----|_/ +-\‾\ O-)-+ | >-+---|>o-|‾\ +-)-----|‾\ +-/_/ | | |-+ | | | |-+ | +-----|_/ +-\‾\ | +-|>o-|_/ | | | >-0 O-)-)-+ +-)-|>o-|‾\ +-/_/ +-)-)---|‾\ | | | |-+ | | | |------+ | +-----|_/ +-)---|_/ | | | +-------------)-)-+ | +-)-----|‾\ | | | |-+ | +-----|_/ +-\‾\ | | >-0 | +-/_/ +--------------+ |

### Tabulaturen

ASCII-Tabulaturen für Gitarre und Bass existieren ebenfalls. Das Beispiel zeigt den Gitarrenriff zu Smoke on the Water, gespielt mittels Powerchords.

### Schriften

Zur ASCII-Art gehören auch die sogenannten FIGlet-Fonts, die es in vielfältigen Ausführungen gibt.

### Beispiel 3D-Grafik

Das Penrose-Dreieck

### Dreidimensionalität nach Art des „Magischen Auges“

Seit 1996 gibt es Stereogramme nach der SIS- oder SIRDS-Methode, die normalerweise mit horizontal periodisch wiederholten Punktgrafikmustern arbeitet. Das geht aber auch in ASCII, wie ein Student (hier anonymisiert und etwas ausgebaut) in seiner Usenet-Signatur demonstrierte:

## Automatische Erstellung

Es gibt Programme, die ASCII-Grafik in Bilder echter Grafikformate konvertieren. Das kann man zunächst einfach von Hand tun, indem man ein Bildschirmfoto vom Fenster mit der ASCII-Grafik macht. Für eine skalierbare Grafik ist der Aufwand allerdings höher.
Weiterhin gibt es auch Programme und Programmbibliotheken, die Bilder und Filme in ASCII-Bilder (aalib) oder ASCII-Filme (aaplayer) umwandeln. Eine Interpretation der ursprünglichen Grafik als Vorlage für Linienführung ist hierbei eher selten. Oftmals wird die Umsetzung der Bildhelligkeit durch die Flächendeckung der verwendeten Zeichen realisiert. Das Programm JavE erlaubt beispielsweise durch die Wahl verschiedener Zeichengruppen sowie der Änderung von Helligkeit und Kontrast der Vorlage eine Beeinflussung des Ergebnisses einer solchen Umwandlung. Solche automatischen Konvertierungen erzeugen meist sehr große Bilder, bei kleinen Formaten ist die Qualität ohne massive manuelle Nachbearbeitung je nach Bildvorlage meist wenig zufriedenstellend.
Bei ATI-Grafikkarten unter Windows gibt es bei der Benutzung von OpenGL einen sogenannten „Smartshader“ (ein Echtzeit-Berechnungseffekt auf Shader-Basis), der die gerenderten Bilddaten als ASCII-Art auf dem Bildschirm wiedergibt.
Video-Player wie MPlayer und der VLC Media Player können Videos als monochrome oder farbige ASCII-Art wiedergeben. Sie stützen sich dabei auf die freien Programmbibliotheken AAlib (monochrom) und libcaca (farbig), letztere beinhaltet auch Programme zum Anzeigen und Konvertieren von Grafiken in ASCII-Art und unterstützt Unicode.
Auch auf Smartphones gibt es Apps, die Kamera-Bilder live in eine ASCII-Grafik umwandeln. Ein Beispiel dafür ist AsciiCam für Android.
* Originalbild
* Monochromes ASCII-Art
* Farbiges ASCII-Art