ASCII-Art

Immer wieder stoße ich beim täglichen Feedlesen auf Links bezüglich irgendwelcher Webdienste, die einfache Pixelbilder näherungsweise in ASCII-Art ausgeben.

Wer jetzt mit dem Begriff ASCII-Art nichts anfangen kann: es handelt sich um die Idee rein mit ASCII-Zeichen Figuren zusammen zu setzen bis hin zum Zeichnen von Bildern. Dies ist vor allen in der Warez-Szene und in irgendwelchen proprietären Communities recht verbreitet. Bei ersterem um die NFOs zu verschönen und sich durch Zeichnungen um den Text, kleinere eingebettet Bildchen und Rahmen/Tabellen zum besseren Darstellen der Informationen von anderen Gruppen hervor zu heben.
In Online-Communities werden diese Bildchen vor allem für Schneeball-Nachrichten missbraucht, man zeichnet irgendwelche kleinen Tierchen

Da ich mich während meines Studiums eine Weile recht intensiv mit derartigen Spielereien beschäfftigt hab (unter anderem in Zusammenarbeit mit Toranor) kann ich über die meisten Tools nur lachen. Sie mögen teilweise durchaus ganz nette Ergebnisse liefern, doch vieles ist einfach meilenweit entfernt von dem was mit wirklich guten Programmen möglich ist.

So gibt es viele Programme die unter dem Umwandeln eines Bildes einfach verstehen dass Rastergrafiken in Raster aus eingefärbten Buchstaben umgesetzt werden, evtl. bringt man es noch fertig die Grafik vorher zu skalieren um die Größe nicht ins Extreme steigen zu lassen.

Eine weitere Randbemerkung sei mir noch gestattet: In vielen Foren/SocNets und ähnlichem Blödsinn werden häufig beliebige Schriften verwendet um "ASCII-Art" zu erstellen. Wirklich gute und wiederverwendbare Ergebnisse erhällt man jedoch nur mit fixed-width-fonts, bei denen (wie der Name ja bereits sagt) jedes Zeichen die gleiche Breite hat. Alles andere führt nur zu Rumgefrickel, das dann auch nur mit einer bestimmten Schriftart sinnvoll anzusehen ist. (Die Nachteile sollten auf der Hand liegen.)

Um mal endlich zu wirklich guten Programmen zu kommen, möchte ich 2 Systeme vorstellen, mit denen man eigentlich bereits nahezu alle Anwendungen abdecken kann:

Jave


Bei Jave (Java Ascii Versatile Editor) handelt es sich hauptsächlich um einen Bildeditor in Java. Man zeichnet halt mit verschiedenen Pinsel-, Stempel-, Linien-, Füll- oder Sonstwas-Werkzeugen auf eine Fläche und erzeugt auf diese Art Bilder wie man es von jedem Paint oder ähnlichem gewohnt ist. Der einzige Unterschied zu den Myriaden anderer Programme: Das Ergebnis besteht aus ASCII-Art! Jave ist dabei auch schlau genug, um z.B. aus 2 sich überschneidenden Geraden mal eben ein X oder + zu zeichnen (das ist noch der einfachste Fall, Jave beherrscht eine große Menge an wirklich beeindruckender Zeichenfunktionen, die alle unauffällig im Hintergrund ablaufen), Farbverläufe sind genausowenig ein Problem wie Freihandkurven und auch wenn einem die Gradienten des Farbverlaufes nicht Gefallen kann man seinen eigenen zusammenstellen.

Nebenbei unterstützt Jave noch Figlet-Schriften (ein standard für die Definition von "Schriftarten" in ASCII-Art, wird mitlerweile von einigen Programmen verstanden und es existieren wahnsinnig viele verwendbare Schriften), kann 3D-Objekte zu ASCII-Art rendern, Animationen erstellen (z.B. auch aus genannten 3D-Szenen) und diese in den verschiedensten Ausgabeformaten (wenn es sein muss auch in einem Javascript-Schnipsel, je nach Geschmack mit oder ohne Kompression) auf die Platte zu speichern.

Die Umwandlung von Pixel-Bildern zu ASCII-Art macht Jave natürlich so ganz nebenbei auch noch.. das dann auch gleich in allen möglichen Geschmacksrichtungen und bei Bedarf mit so netten Ideen wie ein binäres Bild mal eben automatisiert mit benutzerdefiniertem Text darzustellen.

Jave lässt eigentlich keine Wünsche offen, dadurch dass es wirklich nicht zu den Anwendungen gehört die man jeden Tag nutzt und eher auf den abstrusesten Platformen laufen soll die Geeks einfallen, ist auch Java als Sprache nicht wirklich ein Gegenargument. (Im Gegensatz z.B. zu diversen IDEs die man als Entwickler permanent offen haben will, die dank der ganzen Java-VM aber permanent den Speicher zumüllen und mit ewigen Ladezeiten nerven... aber das gehört eigentlich garnicht hierhin).

AAlib


AAlib entstand angeblich weil die Jungs gerne ein Tux-Bildchen von der Linux Texas Users Group während des Bootvorganges sehen wollten.. auf nicht-grafikfähigen Bildschirmen.
Once upon a time we've (my friend Kamil and I) bought two old Herculeses as secondary monitors. We didn't know for that time that our Diamond Stealths 64 cards would become obsolete soon. The next day we downloaded the logo of Linux Texas Users Group - nice silly penguin looking like a cowboy! It was so exciting logo ... we decided that we couldn't live without it and we wanted to see it at boot time as a logo on our secondary monitors. There was a small problem - Hercules doesn't support color graphics. So we decided to convert the penguin image to ascii art using netpbm tools.

The output was very ugly because the converting algorithm was absolutly stupid. During the night I designed a new convertor that used a font bitmap to creat an aproximation table. The output wasn't very good since the algorithm wasn't tuned so well. Many months this small piece of code was waiting on my disc for the day "D". Meanwhile I started a new project XaoS (a fractal zoomer) with my friend Thomas. And then I got an idea: Ascii Art Mandelbrots! I was really impressed by the result! XaoS was faster, portable and looking much better than ever before. I found a new way to go ...


Der ursprüngliche Algorithmus wurde immer wieder stark erweitert und irgendwann war das Ganze dann zu einer vollständigen "Grafikbibliothek" ausgewachsen. Sprich: die Funktionen orientieren sich eher an Bibliotheken für den Vesa-Modus oder andere Grafiksysteme denn an irgendwelchen Programmen für die Dateikonvertierung (es gibt mit AAvga sogar einen Wrapper für SVGAlib).
AAlib ist heute noch immer bei fast allen Linux-Distributionen dabei und lässt sich so bequem installieren ohne auch nur irgendwelche Sourcen compilieren zu müssen. Unter Windows und ähnlichen zurückgebliebenen Systemen hat man allerdings meist die oft zitierte A****-Karte (Cygwin bringt zwar auch Windows-Nutzer in den Genuss aber die Geschwindigkeit könnte etwas leiden.) DOS zählt natürlich nicht zu diesen Rückständigen Betriebssystemen!

Viele andere Programme bauen also auf dieser Bibliothek auf und nutzen sie um oft erstaunliches darzustellen. Erwähnen muss man wohl unbedingt AAXine/Mplayer (DVDs ansehen auf dem Terminal), ttyquake (Quake!), Aview (einen Bildbetrachter für die Konsole, ideal in Kombination mit einem Konsolenbrowser wie Lynx/Links/Elinks oder ähnlichem) und AAFire (eine Kaminsimulation).

Wer einfach nur einmal sehen will was AAlib leisten kann, dem muss man wohl die Grafikdemo BB ans Herz legen (ist ebenfalls in den meisten Distributionen dabei), die wirklich erstaunliche Animationen zeigt.

Beispiele für die Qualität der Bildumwandlung gibt es natürlich auch.

Importierte/Alte Kommentare:

#461: 04.Oct.2008 05:10 von helmeloh

Ein ein Fan von ASCII-Art, allerdings bevorzuge ich die Hardcore Version, also mit einem Editor in Standardschriften, die auf jedem System verfügbar sind.

#462: 04.Oct.2008 05:10 von Dr. Azrael Tod

Naja, genau genommen machen die vorgestellten Tools nichts anderes. Aber am wahren Sinn von ascii-art geht das zugegebenermaßen schon etwas vorbei.

Geschrieben von Dr. Azrael Tod