AMIGA-Magazin · Ausgabe 1/03 · Kurs: Schriften und Amiga (Folge 1)

Aktuelles Heft 1/03

Das Font-ABC

Bei Schriften denkt man vielleicht nur an die Textverarbeitung. Unser dreiteilige Kurs ist diesem Thema gewidmet. Er ist sowohl für Anwender geeignet, als auch für den Programmierer, mit Hilfe von Schriften ihre Programme aufwerten wollen.

von Michael Christoph



Aus Punkten:
Die Schrift topaz.font in 9 Pixel Höhe - die Zeichen setzen sich aus einzelnen Bildpunkten zusammen.


Unterschied:
Buchstaben bei Fix-Fonts (links) haben immer die gleiche Breite, im Gegenteil zu variablen Schriften (rechts).


Schriftwahl:

Komfortable Font-Auswahl erfolgt unter AmigaOS durch den ASL-Font-Requester.

Die drei Teile dieses Kurses beschäftigen sich mit den Amiga-Bitmap-Fonts, den mitgelieferten Agfa-Schriften und TrueType aus der Windows-Welt bzw. PostScript-Schriften aus dem Druckbereich (DTP). In drei Teilen beschäftigen wir uns mit Aufbau und Einsatz der Fonts. Außerdem zeigen wir Beispiele für die Programmierung von Schriften.

Am Anfang war die Bitmap
In den Anfangszeiten des Amigas (und auch anderer Rechner) gab es nur die so genannten Bitmap-Schriften. Dabei liegt jeder Buchstabe und jedes Zeichen der Schrift als eine Punktmatrix vor. Soll nun ein »M« ausgegeben werden, sucht der Amiga die entsprechende Position des Zeichens in der Datei und kopiert den rechteckigen Bereich auf den Bildschirm. Bei einem Wort wird dieser Vorgang für jedes einzelne Zeichen wiederholt. Der Vorteil dabei ist, dass diese Blitoperationen besonders schnell ausgeführt werden können. Beim Amiga ist dazu der Blitter zuständig, wenn keine Grafikkarte verwendet wird. Der Nachteil ist, dass nur bestimmte Schriftgrößen vorliegen. Für den topaz.font gibt es im ROM verankerte Größen 8 und 9 sowie die auf Diskette (bzw. Festplatte) vorliegende Größe 11. Andere Schriften wie garnet liegen auch in der Größe 16 Pixel vor. Seit AmigaOS 2.0 ist es möglich, jede gewünschte Größe vom Betriebssystem errechnen zu lassen. Die Ergebnisse sehen aber nicht immer optimal aus. Deswegen sollte man versuchen speziell erstellte Schriften in der passenden Größe einzusetzen.

Die technische Seite

Die Font-Dateien sind beim Amiga im Verzeichnis FONTS: zu finden und es gibt ein Assign auf die Schublade Fonts in der Systempartition. Dabei gibt es eine Verwaltungsdatei mit dem Namen der Schrift und der Endung .font. Darin steht zuerst einmal der Typ der Schrift (0x0f00 = Bitmap, 0x0f02 und 0x0f03 = Compugraphics). Neben dem Namen ist dort auch hinterlegt, in welcher Größe die Schriften vorliegen. Erstellt werden die .font-Dateien durch FixFonts aus der Systemschublade. Immer wenn eine neue Bitmap-Schrift installiert wird, muss dieses Programm aufgerufen werden. Das AmigaOS arbeitet alleine mit dieser Datei, um festzustellen, welche Größen einer Schrift vorliegen (z.B. zur Anzeige im ASL-Zeichensatz-Requester). Die eigentlichen Daten liegen dann in einer Unterschublade vor. Der Name der Schublade entspricht dabei wieder dem Font-Namen. Die Datendateien selber bestehen nur aus einer Zahl, die der Schriftgröße entspricht. Ein vollständiger Satz der Topaz-Schrift in Größe 11 besteht somit aus: FONTS:topaz.font: mit der Font-Typ-ID (0x0f00) sowie dem Namen und den vorhandenen Größen der Schrift in FONTS:topaz/11 (die Bitmap-Daten für die Font-Höhe 11).
Topaz wie auch Courier zählen zur Gruppe der Fix-Fonts ­ der Schriften mit fester Breite je Zeichen. Ein »W« braucht also genausoviel Platz wie ein »i« ­ beim Design wurden die gleichen Abmessung für Höhe und Breite verwendet. Das macht es besonders leicht, tabellarische Gliederungen vorzunehmen. Helvetica ist ein typischer Vertreter für variable Schriftbreite. In dieser Schriftart ist es nicht mehr möglich, durch Benutzung von Leerzeichen eine einheitliche, vertikale Ausrichtung zu erreichen.

Kursübersicht
Teil 1: Amiga-Bitmap- und Compugraphics-Schriften. Aufbau, Einsatz und Grundlagen.
Teil 2: TrueTypeFonts-
Installation und Benutzung der aus der unter Windows benutzten Schriften.
Teil 3: Adobe PostScript Fonts-Installation und Nutzung.
Wer als Programmierer die Fonts nutzen will, muss die entsprechenden Bibliotheken und Routinen einbinden (s. Listing 1).
Eine Erweiterung der normalen einfarbigen Pixelschriften waren die ColorFonts. In diesem Format ist es möglich, bis zu 32 Farben für die einzelnen Zeichen zu verwenden. Dadurch können z.B. andersfarbige Umrahmungen erzeugt werden oder auch Farbverläufe innerhalb eines Zeichens.

Diese Schriftart hat aber praktisch keine Bedeutung. Zu finden ist sie z.B. in Personal Paint. Die Nachteile sind identisch wie bei den normalen Bitmap-Schriften. Als weiterer Nachteil ist die starre Vorgabe der Farbpalette zu nennen. Mag dies bei gezeichneten Bildern noch möglich sein, ist es für ein normales Programm auf der Workbench unmöglich, genau die geforderten Farben zu setzen. Darum sind diese Schriften auch praktisch nicht anzutreffen. Interessierte Programmierer seien auf die »ColorTextFont«-Struktur verwiesen.

Compugraphics-Schriften

Mit AmigaOS 2.0 hielten auch die frei skalierbaren Schriften Einzug in das Betriebssystem. Zum Zuge kam das (heute kaum anzutreffende) AGFA-Compugraphics-Format. Schriften wie »CGTimes« und »CGTriumvirate« sind Beispiele. Diese Schriften liegen nicht mehr in einer bestimmten Größe vor. Es gibt lediglich eine (mathematische) Beschreibung aus Linien, Kreisbögen und Punkten, aus denen sich ein Zeichen zusammensetzt. Darum können sie ohne Qualitätsverluste in jeder beliebigen Größe berechnet und dargestellt werden.
Wer eine AGFA-Schrift im Public-Domain-Bereich oder kommerziell findet, kann diese in der Regel noch nicht sofort am Amiga benutzen. Die nötige Anpassung und Umwandlung der Rohdaten übernimmt das Programm »Intellifonts« aus der Systemschublade der Workbench. Eine vollständig installierte AGFA-Schrift setzt sich auf dem Amiga aus den folgenden Dateien zusammen:

FONTS:CGTimes.font ­ Beinhaltet nur die Font-Typ-ID (0x0f02 bzw. 0x0f03).
FONTS:CGTimes.otag ­ Zusätzliche Beschreibungsdaten für die bullet.library.
FONTS:_bullet_outline/CGTimes.type ­ Ist die Beschreibung der einzelnen Zeichen.


In der Praxis:

Unterschiedliche Schriften in einem Fenster.
 
CG-Fonts:
Durch Linienzüge wird das Aussehen des Zeichens definiert.


Hinzufügen:

Intellifonts werden mit dem gleichnamigen Programm in das System installiert.


Eigenregie:

Mehr Möglichkeiten bei direkter Nutzung der bullet.library.

Nicht zur eigentlichen Schrift gehörend, aber umbedingt notwendig für die bullet.library sind noch die Dateien aus dem Unterverzeichnis FONTS:_bullet/.
Für den Programmierer ist es kein Unterschied, ob eine Bitmap-Schrift oder eine Compugraphics-Schrift verwendet werden soll. Beide werden per OpenDiskFont() in den Speicher geladen und über Text() auf den Bildschirm gepinselt. Im Hintergrund schaltet sich allerdings die bullet.library zu. Diese war unter Workbench 2.0 noch Bestandteil der diskfont.library (V37).

Listing 1: Um als Programmierer diese Schrift zu nutzen, ist folgender Block notwendig:

#include <diskfont/diskfont.h>
#include <clib/diskfont_protos.h>
#include <clib/graphics_protos.h>

struct DiskfontBase *DiskfontBase;
struct TextFont *font;
struct TextAttr textattr = { "topaz.font&",11,
FS_NORMAL,FPF_DISKFONT }; if((font = OpenDiskFont(&textattr))) { SetFont(win->RPort,font); Move(win->RPort,20,20); Text(win->RPort,"Text",4); CloseFont(font); } else printf("Can't open topaz.font/11.\n");

Sie übernimmt die Aufgabe, beim Laden der Schrift diese in eine Bitmap der angeforderten Größe umzurechnen. Die bullet.library lässt sich allerdings auch direkt verwenden, um mehr Einfluss auf die Schrift zu nehmen. So kann z.B. jeder Buchstabe in einer anderen Größe gezeichnet werden oder die Buchstaben lassen sich auch drehen. Das bringt mehr Flexibilität für den Programmierer.

Schriften erzeugen oder nachbearbeiten

Wer noch Zugriff auf eine Workbench 1.2 oder 1.3 Diskette hat, findet dort das Programm »Fed«. Es öffnet einen eigenen Bildschirm in den AmigaOS 1.x typischen Farben. Nach Auswahl der Schrift wird rechts eine Übersicht aller Zeichen in Orginalgröße angezeigt, während links eine vergrößerte Zeichenfläche zur Verfügung steht. Dort wird das Aussehen des Zeichens durch setzen und löschen von Pixeln festgelegt. Nach dem Erstellen einer neuen Schriftgröße muss »FixFonts« aufgerufen werden, damit die Schriftgröße dem AmigaOS bekannt gegeben wird. Wird eine Schrift verändert, ist evtl. ein Rechnerneustart notwendig, damit auch tatsächlich die neue Schrift verwendet wird (und nicht die alte Version aus dem Speicher).
Die Erstellung und Bearbeitung von Compugraphics-Schriften kann mit dem Programm »TypeSmith« vorgenommen werden. Es kann auch eine komplette Übersicht aller Zeichen darstellen. In einem separaten Fenster wird das aktuelle Zeichen einzeln und vergrößert dargestellt. Mittels Linien und Kreisbögen wird die äußere Form des Zeichens definiert.

Freuen Sie sich schon auf den nächsten Teil, in dem die TrueType-Fonts vorgestellt werden. Neben der Schritt-für-Schritt-Installation für den Anwender sind auch wieder Hintergründe und Programmbeispiele für den Programmierer zu finden.

 


lb


Hauptseite © 2003 All Rights Reserved. Alle Rechte vorbehalten Franzis' Verlag GmbH
Veröffentlichung und Vervielfältigung nur mit schriftlicher Genehmigung des Verlags

Kommentare, Fragen, Korrekturen und Kritik bitte an Webmaster AMIGA schicken.
Zuletzt aktualisiert am 24. Januar 2003, Michael Christoph.