erschienen in: GO64! - das Magazin für wahre Computerfreaks, Ausgabe 10/99

Hello World,

heute geht es einmal nicht um Hardware - jedenfalls nicht direkt - denn um dem Thema dieses Heftes gerecht zu werden, wollen wir heute einmal Grafikformate der "großen weiten Welt" unter die Lupe nehmen.

Am Anfang war das Bit

In der Computersteinzeit war die Grafik rein schwarz/weiss und lag in Form einer Bitmap im Speicher - jedes Bit im Speicher repräsentierte einen Punkt auf dem Bildschirm. Naheliegenderweise hat man dieses Format auch zur Speicherung der Grafik auf nichtflüchtigen Speicher angewendet. Doch schon damals gab es Verwirrung: Zwar war man sich - natürlich - darüber einig, dass je 8 dieser Pixelbits ein Byte ergaben, jedoch was solch ein Byte repräsentiert, war von System zu System unterschiedlich.

Viele Computer erzeugten ihre "hochauflösende" Grafik (256x192 war damals ja eine wirklich hohe Auflösung) basierend auf dem normalen Textmodus, indem der Grafikprozessor auf die ein oder andere Art malträtiert wurde. Dies führte teilweise dazu, dass eine solche Bitmap-Datei einen etwas kuriosen Aufbau hatte: Je 8 aufeinanderfolgende Bytes bestimmen den Inhalt eines 8x8 Pixel großen Pixelfeldes.

...und die Welt wird bunt

Unvorstellbar, aber es gab eine Zeit, da 8 oder gar 16 Farben ungeheuer viel waren. Warum gerade 8 oder 16 Farben? Wie sicherlich alle wissen, wird ein Monitorbild basierend auf den drei Grundfarben rot, grün und blau aufgebaut. Benutzt man nun jeweils ein Bit zur Steuerung des jeweiligen Farbanteils kann man so 8 unterschiedliche Farbtöne erzeugen - benutzt man ein weiteres zur Helligkeitssteuerung (halbe/volle Helligkeit) werden sogar 16 daraus.

Heutige True-Color-Darstellung bedient sich des gleichen Prinzips, nur daß man hier jeweils 8 Bit pro Farbe verwendet, was in 16.7 Mio. Farbtönen resultiert.

Auch hier bietet sich die Bitmap-Darstellung an, d.h. eine Bitmap pro Farbebene. Leider ist dies nicht sonderlich effektiv, davon abgesehen erlaubten die frühen Farbgrafikmodi selten die gleichzeitige Verwendung aller Farben, so dass eine Speicherung in Form mehrerer Bitmaps hier nicht sinnvoll erscheint. Beispiel C64, der im Hires-Modus (normalerweise) nicht die Verwendung der kompletten Farbpalette erlaubt. Oder auch die frühen VGA-Karten, die lediglich 256 Farben gleichzeitig darstellen konnten - was zu einer Abart der Bitmapgrafik führte: Je ein Byte repräsentierte nun ein Pixel, der Wert des Bytes entsprach der Farbnummer der gewählten Farbpalette, sozusagen eine Bytemap.

Vektorgrafiken

Ein großer Nachteil von Bitmaps ist die mangelhafte Skalierbarkeit - wer schonmal eine Pixelgrafik vergrößert hat, wird den typischen "Klötzchengrafikeffekt" erlebt haben (übrigens war einer der ersten in die Hardware von Grafikchips implementierten Spezialeffekte der Pixelzoom). Diesem Umstand begegnen Vektorgrafiken - hier wird nicht die Bitmap selbst sondern eine abstrakte Repräsentation derselben abgespeichert. Statt einer Linie selbst werden beispielsweise nur Start- und Endpunkt der Linie und ein spezielles Steuerzeichen, welches aussagt, daß es sich hierbei um eine Linie handelt und nicht etwa um die Angabe eines Kreismittelpunkts samt -radius.

Vektorgrafikformate spielen vor allen Dingen im DTP-Bereich eine Rolle, das mit bekannteste jedoch dürfte fast jedem Computerbenutzer geläufig sein: PostScript.

Gebräuchliche Formate

Heute gebräuchliche Formate sind plattformunabhängig, d.h. sie besitzen in aller Regel keine einer speziellen Hardware entstammenden "Fingerabdrücke" wie beispielsweise FLI-Grafiken. Kommen wir also zu den geläufigsten Formaten:

Gibt's das auch für den C64?

Tatsächlich kann man mit dem C64 auf eine Vielzahl moderner Grafikformate zurückgreifen dank des Grafiktoolkits GoDot. Aufgrund der Modularität dieser Software und einer entsprechend durchdachten API lassen sich überdies noch fehlende Grafikfilter vergleichsweise einfach implementieren.

Gravierender wiegen hier die hardwaretechnischen Einschränkungen des C64, denn selbst mit aufwendigen Programmiertricks lassen sich dem C64 nicht mehr als 320x200 Punkte Auflösung und 136 Farben entlocken - weit entfernt von heute durchaus üblichen 1600x1200 Punkten in Echtfarbdarstellung. Ganz abgesehen vom Speicherplatzbedarf solcher Bilder - eine REU ist absolute Mindestvoraussetzung, besser noch eine 16MB-Speichererweiterung. Und wenn man mit komprimierten Bildformaten arbeitet, ist eine SCPU zwecks flüssigerem Arbeiten sicherlich von Vorteil.

Quellen