ASCII-Art

ASCII-Art ( für ASCII-Kunst) ist eine Kunstrichtung, die mit Buchstaben, Ziffern und Sonderzeichen einer nichtproportionalen 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 (), 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 

         (__)
         (oo)
   /------\/     __        O         __O       .___.     <( ,, )>
  / |    ||     /o)\      /H\      _\-<,       {o,o}     ( (..) )    (-_(-_(-_-)_-)_-)
 *  /\---/\     \(o/      / \    _(_)/(_)_     /)__)        -
    ~~   ~~      ¯¯                            -"-"-
      Kuh     Yin/Yang   Person   Radfahrer    Eule    Hausschwein     Gesichter
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.

              __ __
            ,;::\::\
          ,'/' `/'`/
      _\,: '.,-'.-':.
     -./"'  :    :  :\/,
      ::.  ,:;__; :-
      :"  ( .`-*'o*',);
       \.. ` `---'`' /
        `:._..-   _.'
        ,;  .     `.
       /"'| |       \
      ::. ) :        :
      |" (   \       |
      :.(_,  :       ;
       \'`-'_/      /
        `...   , _,'
         |,|  : |
         |`|  | |
         |,|  | |
     ,--.;`|  | '..--.
    /;' "' ;  '..--. ))
    \:.___(___   ) ))'
           SSt`-'-''

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:
   |\      _,,,---,,_
   /,`.-'`'    -.  ;-;;,_
  |,4-  ) )-,_..;\ (  `'-'
 '---''(_/--'  `-'\_)  fL

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):
   .----------o----------o-----------------o---------.
   |          |          |                 |         |
   |         .-. R1     .-. R2            .-. R3    .-. R4
   |         | | 25k    | | 250k          | | 250k  | | 25k
   |         | |        | |               | |       | |
   |         '-'   C1   '-'               '-'  C2   '-'
   |          |          |                 |         |
   |          |    ||    |                 |   ||    |
   |          o----||----o----.     .------o---||----o
   | 9V       |    ||          \   /           ||    |
  ---         |                 \ /                  |
   -          |    1n            /             1n    |
   |      Q1  |                 / \                  | Q2
   |           \|              /   \               |/
   |    2N2222  |-------------'     '--------------|  2N2222
   |           <|                                  |>
   |          |                                      |
   |          |                                      |
   '----------o--------------------------------------'

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 wäre:
   +-------+----+-----+----+
   |       |    |     |    |
   |      25k  250k  250k 25k
   |       |    |     |    |
   |+      +-1n-+   +-+-1n-+
   9V      |     \ /       |
   |       |      X        |
   |       C     / \       C
   | 2N2222  B--+   +----B  2N2222
   |       E               E
   |       |               |
   '-------+---------------+

Als weiteres Beispiel aus der Beschaltung von Scartkabeln (komplett ausgeführte Versionen siehe dort):

 -| Linien:    leitende Verbindung, Kabel
  + Kreuz:     Abzweigung, verbundene Kreuzung, Knoten
  X Kreuz:     nicht verbundene Kreuzung
  ) Brücke:    nicht leitend verbundene Kreuzung
  O Schirmung: Schirmleitung zum umhüllten Kabel
Beispiel Logikgatter nach DIN 40700 (vor 1976) statt der aktuellen IEC 60617-12

   +-.
  -|--\
   |   |*---   2-fach NOR
  -|--/
   +-°

Im Vergleich:
Mit Logisim erstellter Schaltplan eines Volladdierers und der dazugehörige ASCII-Art-Schaltplan.

Tabulaturen 
→ Siehe auch: Tabulatur#Moderne Gitarrentabulatur

ASCII-Tabulaturen für Gitarre und Bass existieren ebenfalls. Das Beispiel zeigt den Gitarrenriff zu Smoke on the Water, gespielt mittels Powerchords.
 e---------------------------------------------
 B---------------------------------------------
 G--0--3---5---0--3---6--5---0--3---5---3--0---
 D--0--3---5---0--3---6--5---0--3---5---3--0---
 A---------------------------------------------
 E---------------------------------------------

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
                                 __
    /\   \/\   \/\   \/\   \                    /\                     \
   /  \___\ \___\ \___\ \___\                  /  \    _\
   \  / __/_/   / /   / /   /                  \   \   \                /
    \/_/\   \__/\/___/\/___/                    \   \   \__    /
      /  \___\    /  \___\                       \   \   \    /   /   /
      \  / __/_  _\  /   /                        \   \   \  /   /   /
       \/_/\   \/\ \/___/                          \   \   \/   /   /
         /  \__/  \___\                             \   \  /   /   /
         \  / _\  /   /                              \   \/   /   /
          \/_/\ \/___/                                \      /   /
            /  \___\                                   \    /   /
            \  /   /                                    \  /   /
             \/___/                                      \/___/

     unterbrochene Version                       ununterbrochene Version

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:
      :---------------:---------------:---------------:---------------:
      | Hannes        Hannes        Hannes        Hannes        Hannes| 3-D-Signatur.
      | Muster        Muster        Muster        Muster        Muster| Aus etwa 50 cm Entfernung betrachten.
      | muster@ins.   | muster@ins.   | muster@ins.   | muster@ins.   | - In die Ferne starren: "Hintergrund"
      | unisupergut.de| unisupergut.de| unisupergut.de| unisupergut.de|   erscheint als hinterste Ebene;
      | Hinter-       |   Hinter-     |     Hinter-   |       Hinter- | - Augen kreuzen: "Hintergrund"
      | grund         |   grund       |     grund     |       grund   |   erscheint als vorderste Ebene
      +---------------+---------------+---------------+---------------+

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.

Siehe auch 
 Pixel-Art
 Baudot-Art
 ANSI-Art

Weblinks 

ASCII-Art im Internet

 media4u.ch - ASCII-Art (ASCII Art Movie. The Matrix in ASCII Art in top Qualität)
 Große ASCII-Art-Sammlung
 ASCII History of Moving Images und mehr contemporary ascii (animierte ASCII Art)
 Russian ASCII text art collection
 Star Wars Asciimation, Episode IV (A New Hope) als ASCII-Film (Work in Progress)
 Newsgroups: de.alt.rec.ascii-art (deutsch) und alt.ascii-art (englisch)
 Image converter to ASCII

Software zum Erstellen von ASCII-Art
 ASCII Generator generiert online aus Texten Schriftzüge in verschiedensten Figlet-Fonts
 JavE, plattformunabhängiger ASCII-Art-Editor, Freeware
 AACircuit für elektronische Schaltungen, Freeware
 Implementierung mit Beispiel in C# (.NET)
 jp2a Erzeugt aus JPEG-Grafiken ASCII-Art, von der Kommandozeile aufrufbar, Open-Source

Einzelnachweise 

Ascii Art