AMIGA-Magazin
· Ausgabe 1/03
· Kurs: Schriften und Amiga (Folge 1)
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.
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
© 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.