Mit ASCII Art kunstvolle Bilder erstellen

Aus LinuxUser 10/2014

Mit ASCII Art kunstvolle Bilder erstellen

Buchstabenkunst

Bilder aus Buchstaben und Ziffern zusammenzusetzen ist eine komplexe Angelegenheit, es sei denn, Sie haben die passenden Tools zur Hand.

ASCII-Künstler zählen häufig zu echten Tüftlern: Mit großer Akribie erschaffen Sie aus Buchstaben und Ziffern ein Bilder oder sogar Filme. Das Nebeneinander der Einfachheit der Mittel und der Komplexität im Sinne einer großen Nähe der Bilder zur Realität fasziniert immer wieder.

Der Ursprung dieser extravaganten Kunstform fällt in die erste Hälfte des vergangenen Jahrhunderts und ist etwa seit den 1960ern unter dem Begriff “ASCII Art” bekannt. Entsprechende Bilder verwenden lediglich Typen ohne Sonderzeichen und Umlaute.

Diese lateinischen Schriftzeichen basieren auf dem englischen Alphabet und später dem American Standard Code for Information Interchange (ASCII). Sie enthalten Groß- und Kleinbuchstaben, grundlegende Trennzeichen und Steuerzeichen, die aus der Welt der Fernschreiber stammen. Diese Zeichen finden sich auf nahezu jedem Computer, was es erlaubt, das Bild überall in identischer Art und Weise anzuzeigen.

Künstlerische Möglichkeiten entstehen insbesondere durch das Ausnutzen des Schwarz-Anteils in den verschiedenen Zeichen. Die Übergänge zwischen hell und dunkel und den einzelnen Formen, wie bei Bögen und Kurven, erzielen die Künstler durch unterschiedliche Schattierungen. Darüber hinaus sorgt die Fähigkeit des menschlichen Gehirns, zu abstrahieren und Bilder mittels Mustern zu erkennen, für den gewünschten Effekt.

Hilfsmittel

Die zentralen Bibliotheken unter Linux zum Erzeugen der Bilder heißen Aalib und Cacalib. Während Ersteres für “ASCII Art Library” [1] steht und nur Darstellungen in Graustufen erzeugt, steht der zweite Namen für “Colour ASCII Art Library” [2] und bringt Farbe ins Spiel. Die Mächtigkeit der beiden Bibliotheken probieren Sie am besten spielerisch aus. Dazu installieren Sie die Pakete libaa-bin, bb und caca-utils.

Alle drei enthalten eine Reihe von Beispielen. Während aafire und cacafire ein Terminal mit einem Kaminfeuer verzieren (Abbildung 1), demonstrieren aatest, bb und cacademo recht beeindruckend Animationen, Filter sowie Wechsel bei Fonts und Farben. Eine Uhr zaubern Sie mit cacaclock auf den Schirm (Abbildung 2).

Abbildung 1: Das kleine Demoprogramm <code srcset=

cacafire setzt das Terminal in Flammen.” width=”300″ height=”250″ /> Abbildung 1: Das kleine Demoprogramm cacafire setzt das Terminal in Flammen.

Abbildung 2: Mit <code srcset=

cacaclock zaubern Sie eine kleine Digitaluhr ins Terminal.” width=”300″ height=”102″ /> Abbildung 2: Mit cacaclock zaubern Sie eine kleine Digitaluhr ins Terminal.

Anschauen und umwandeln

Mit dem Programm aview betrachten Sie Bilder im PNM-Format. Für andere Formate wie PNG oder JPEG eignen sich hingegen asciiview aus dem gleichen Paket beziehungsweise cacaview aus dem Paket caca-utils besser. Diese bereiten die Bilder im Hintergrund für die Anzeige im Terminal vor (Abbildung 3).

Abbildung 3: Das Programm <code srcset=

cacaview erlaubt es, Bitmap-Bilder als farbigen Zeichensalat anzuzeigen.” width=”300″ height=”132″ /> Abbildung 3: Das Programm cacaview erlaubt es, Bitmap-Bilder als farbigen Zeichensalat anzuzeigen.

Die Tools aview und asciiview stellen die Bilder mit 7-Bit-Zeichen dar, über die Schalter -eight wechseln Sie zu 8 Bit, bei -extended nutzen die beiden Programme 256 Zeichen.

Das Umwandeln von Bildern gelingt am besten mit dem Bildbearbeitungsprogramm Gimp. Öffnen Sie dazu das gewünschte Bild und exportieren es via Datei | Exportieren…. Aus dem Dropdown-Menü wählen Sie ASCII-Kunst (*txt, *.ansi, *.txt). Allerdings erzeugt Gimp dabei relativ große Dateien.

Selbst der umgekehrte Weg vom Zeichensalat zum Rasterbild funktioniert mit den richtigen Werkzeugen. Ins Spiel kommt hier zunächst das Programm Ditaa (Diagrams Through ASCII Art) [3]. Dabei handelt es sich um ein Java-Programm, das entsprechende Bilder in Formen und Diagramme umwandelt. Es kombiniert dabei traditionelle Mittel mit eigenen Ergänzungen, die Farben und Formen der Elemente definieren. Listing 1 zeigt die Daten und (Abbildung 4) das Ergebnis.

Listing 1

    +--------+   +-------+    /--------\
    |  cRED  | --+ ditaa +--> |        |
    |  Text- |   +-------+    |Diagramm|
    |Dokument|   |!magic!|    |c0F0    |
    |     {d}|   |cBLU   |    |        |
    +---+----+   +-------+    \--------/
        :                          ^
        |       Viel Arbeit        |
        \--------------------------//

Abbildung 4: Mit Ditaa verwandeln Sie Ascii-Diagramme in Bilder.

Abbildung 4: Mit Ditaa verwandeln Sie Ascii-Diagramme in Bilder.

Aus dem Text in der Box generiert es die jeweilige Beschriftung. Zeichenketten, die mit einem kleinen c beginnen, legen die Hintergrundfarbe fest. Es erkennt Farbcodes sowohl als Textbezeichner als auch in RGB-Angaben.

Waagerechte und senkrechte Linien entstehen aus Minus- und Pipe-Zeichen. Mit einem Plus gestalten Sie Ecken, die Sie optional mit einem Schrägstrich abrunden. Das Umwandeln erledigt die Software nach folgendem Muster:

ditaa Eingabedatei.txt  Ausgabedatei.png

Als Alternativen bieten sich Asciitopgm und das Python-Modul Python-aafigure [4] an. Ersteres finden Sie im Paketes netpbm, das Letztere stellt eine vollständige Klasse zur Integration in eigene Projekte dar.

Sprechblasen und Banner

Über einen größeren Unterhaltungswert verfügen die beiden Programme Cowsay und Cowthink. Beide finden Sie im Debian-Paket cowsay. Die Tools generieren Bilder von Kühen, die jeweils Text in einer Blase von sich geben.

Während Cowsay eine Sprechblase erzeugt, kommt bei Cowthink eine Denkblase zum Vorschein. Beide Programme akzeptieren eine Reihe von Schaltern, um verschiedene Stimmungen und Varianten der Kuh darzustellen. Dazu gehören -b für den Borg Mode, -d für eine tote Kuh, -g für eine hungrige und -p für den Paranoia-Modus (Listing 2).

Listing 2

$ cowsay -p Muuuuh!
 _________
< Muuuuh! >
 ---------
        \   ^__^
         \  (@@)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Im Paketverwaltungsprogramm Apt-get verbirgt sich ein Osterei. Dieses erscheint, sobald Sie apt-get moo aufrufen (Listing 3).

Listing 3

$ apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...
#

Eisenbahn-Fans kommen ebefalls auf ihrem Linux-System nicht zu kurz und sollten das Paket sl (Steam locomotive) installieren. Es zeigt animierte Dampflokomotiven im Terminal, die von rechts nach links fahren. Ursprünglich gedacht als Witz auf den Vertipper zum Kommando ls, erreichte das Gimmick inzwischen Kultstatus.

Das Programm akzeptiert verschiedene Schalter, um die Anzeige zu gestalten: Mit -a rufen die Lokführer um Hilfe, mit -l erhalten Sie nur einen kleinen Zug und mit -F beginnt der Zug zu fliegen (Abbildung 5).

Abbildung 5: Das kleine Tool <code srcset=

sl lässt eine Dampflok durch das Terminal fahren.” width=”300″ height=”141″ /> Abbildung 5: Das kleine Tool sl lässt eine Dampflok durch das Terminal fahren.

Und viel mehr…

ASCII Art umfasst nicht nur Bilder, sondern darüber hinaus Schriften und Banner. Um sie zu erzeugen, helfen die beiden Pakete figlet und toilet. Figlet steht für “Frank, Ian and Glenn’s Letters”, Toilet [5] bezieht sich auf “The Other Implementation’s letters”. Beide Programme akzeptieren eine Vielzahl von Optionen zum Steuern und Gestalten der Ausgabe.

Während Figlet lediglich verschiedene Banner in Schwarz-Weiß erzeugt, nutzt Toilet Sternchen, andere Fonts mit Farbverläufen sowie der Interpretation von Unicode (Abbildung 6).

Abbildung 6: Toilet bietet eine Vielzahl von Möglichkeiten, Banner in allen möglichen Farben und Formen darzustellen.

Abbildung 6: Toilet bietet eine Vielzahl von Möglichkeiten, Banner in allen möglichen Farben und Formen darzustellen.

Jenseits der Konsole bieten die Projekte Jave [6] oder Asciio [7] Programme an, um Bilder aus Zeichen in einer grafischen Umgebung zu gestalten. Ersterer basiert auf der Programmiersprache Java und steht unter einer freien Lizenz. Um die Software (Abbildung 7) zu starten entpacken Sie das Zip-Archiv, öffnen im neuen Verzeichnis eine Konsole und tippen darin den folgenden Befehl:

java -jar jave5.jar
Abbildung 7: Das Java-Programm Jave bietet vielfältige Möglichkeiten, um eigene ASCII Art zu gestalten.

Abbildung 7: Das Java-Programm Jave bietet vielfältige Möglichkeiten, um eigene ASCII Art zu gestalten.

Asciio bietet ebenfalls eine graphische Benutzeroberfläche, kombiniert aus Perl und GTK. Derzeit steht sie als Paket allerdings nur für Deb-basierte Systeme bereit. Obwohl die Applikation ihren eigenen Charme besitzt, entwerfen Sie damit recht flink eigene Werke.

Das Tool Cmatrix aus dem gleichnamigen Paket erzeugt eine Art Bildschirmschoner für ein Terminal, der sich im Design an den Science-Fiction-Film “Matrix” anlehnt (Abbildung 8). Mit einer Reihe von Schaltern verändern Sie die Anzeige, etwa das Scroll-Verhalten und die verwendeten Zeichen.

Abbildung 8: Möchten Sie das Matrix-Feeling im Terminal, hilft Cmatrix weiter.

Abbildung 8: Möchten Sie das Matrix-Feeling im Terminal, hilft Cmatrix weiter.

Sowohl Mplayer als auch der VLC Media Player unterstützen die Ausgabe von Filmen in ASCII-Zeichen. Mplayer starten Sie dazu mit den Parametern -vo aa Datei. Die Erweiterung -vo steht für “video output format” und benötigt den Namen des gewünschten Moduls für die Ausgabe, im Beispiel aa für ASCII Art.

Um Gleiches beim VLC Media Player zu erreichen, konfigurieren Sie die Ausgabe um. Im Menü unter Extras | Einstellungen | Video | Ausgabe wählen Sie zwischen ASCII-Art für monochrome und ASCII-Art (farbig) für eine mehrfarbige Anzeige (Abbildung 9).

Abbildung 9: Laden Sie das richtige Ausgabemodul, spielt der Videoplayer VLC normale Filme als ASCII-Ausgabe ab.

Abbildung 9: Laden Sie das richtige Ausgabemodul, spielt der Videoplayer VLC normale Filme als ASCII-Ausgabe ab.

Sehenswert

Zur Inspiration seien Ihnen die zahlreichen Fanseiten ans Herz gelegt, die nicht nur uns stundenlang stöbern ließen [8],[9],[10],[11]. Zum Entspannen schauen Sie sich am besten den Film “Star Wars” in passender Buchstabenoptik im Webbrowser an [12]

Infos

[1] Aalib: http://aa-project.sourceforge.net/aalib/

[2] Libcaca: http://caca.zoy.org/wiki/libcaca

[3] Diagramme in ASCII Art: http://ditaa.sourceforge.net

[4] Aafigure: https://launchpad.net/aafigure

[5] Toilet: http://caca.zoy.org/wiki/toilet

[6] Jave: http://www.jave.de

[7] Asciio: https://packages.debian.org/wheezy/asciio

[8] ASCII-Art-Bildergalerie: http://www.ascii-art.de

[9] ASCII-World-Bildergalerie: http://www.asciiworld.com

[10] ANSI- und ASCII-Art-Archiv: http://sixteencolors.net

[11] Buchstabenbildchen: http://www.buchstabenbildchen.de

[12] “Star Wars” als ASCII Art: http://www.asciimation.co.nz

[] Thomas Winde bietet als selbstständiger Unternehmer Ausflugsfahrten an (http://www.ausflug-web.de) und blickt daneben auf eine langjährige Erfahrung als Linux-Anwender zurück. Als Mitorganisator der Chemnitzer Linux-Tage verantwortet er das Einsteigerforum und hält dort unter anderem Vorträge.

[] Frank Hofmann studierte Informatik an der Technischen Universität Chemnitz. Derzeit arbeitet er in Berlin bei dem Open-Source-Experten-Netzwerk Büro 2.0 als Dienstleister mit Spezialisierung auf Druck und Satz (http://www.efho.de). Er ist Mitgründer des Schulungsunternehmens Wizards of FOSS (http://www.wizards-of-foss.de/). Seit 2008 koordiniert er das Regionaltreffen der Linux User Groups aus der Region Berlin-Brandenburg.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 10/2014 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben