Besseres Font-Rendering unter Windows mit GDI++

22 05 2009

Basics

Das Problem der Darstellung von Schriftarten auf einem Bildschirm liegt in der Tatsache begründet, dass die Zeichen in einem festen Pixelraster dargestellt werden müssen. Beispielsweise stehen für den ganzen Bildschirm bei einer Auflösung von 1.280 × 1.024 genau 1.310.720 Pixel zur Darstellung des Inhaltes zur Verfügung. Was zunächst beeindruckend klingt, ist es in der Praxis nicht, denn wenn man z.B. das große »A« der Schriftart »Arial« in der Größe 12 auf den Screen bringt, dann stehen dem armen Letter gerade mal 6 × 7 Pixel zur Verfügung. Da kann jeder Drucker nur müde lächeln. Als wäre das nicht genug, stellt ein heutiger Bildschirm 96 dpi dar (dots per inch / Punkte pro Zoll), ein Spitzendrucker kommt hier auf Werte von 1.600 dpi. Und schließlich werden im Regelfall zur Darstellung des Buchstaben dann ganze zwei (!) Farben verwendet. Was dabei heraus kommt ist rechts zu sehen. Schlecht zu lesen und ästhetisch ein Grauen.

Arial 12 ohne Font-Smoothing
Vergrößerte Darstellung des Buchstaben »A« aus der Schriftfamilie Arial bei Größe 12 ohne Anti-Aliasing.

Ab Windows 95 wurde ein Standard-Anti-Aliasing (siehe unten) angeboten, dass den verpixelten Effekt abmildern sollte, allerdings war der Qualitätsgewinn kaum wahrnehmbar. Auch unter Windows XP war dies noch die Grundeinstellung. Allerdings spendierte uns MicroSoft einen technologischen Fortschritt; Font-Smoothing1 war im Anmarsch.

ClearType

Mit ClearType wurde ab Windows XP eine Technik zur besseren Darstellung von Schriftarten ausgeliefert, die auch in vielen anderen Bereichen der digitalen Grafik zum Einsatz kommt, das sogenannte Anti-Aliasing, eine Art Kantenglättung. Dabei werden nicht nur die reinen Pixel betrachtet, sondern auch die Umgebung derselben ausgewertet (Subpixel-Rendering2). In der Folge werden durch Interpolation besonders krasse Kontraste mit teiltransparenten Pixeln abgeschwächt. Bei einem schwarzen Buchstaben auf weißem Hintergrund also z.B. durch verschiedene Graustufen. Das Ergebnis ist ein wesentlich angenehmeres Schriftbild, ein optischer Gewinn und dankbare Augen.

Arial 12 mit ClearType
Der gleiche Buchstabe wie oben, diesmal mit aktiviertem ClearType.

MicroSoft nannte seine Version des Font-Smoothings ClearType, auf einem Apple-Rechner sorgt die Rendering-Engine Quartz für hübsche Schrift. Beide Varianten könnten unterschiedlicher nicht sein3. ClearType sorgt für scharfe, auf die Bildschirmdarstellung optimierte Zeichen, Quartz hingegen stellt Buchstaben eher so dar, wie sie auch beim Ausdruck erscheinen, für einen Windows-User sieht das Ganze viel zu fett und verschwommen aus. Der Aufschrei jedenfalls, der damals bei Erscheinen des Safari für Windows durchs Netz ging, zeigte deutlich, welch Gewohnheitstier der Mensch ist. Wer damals den Safari – aus diesem Grund – sofort wieder deinstalliert hat, braucht hier nicht weiterlesen.

FreeType / GDI++

Das FreeType-Projekt entwickelt seit einigen Jahren eine freie, leicht portierbare Programmbibliothek zur Darstellung von Schriften im Pixelraster. So ist FreeType z.B. unter Linux die Standard-Software zur Rasterung von TrueType- und OpenType-Schriften. Quasi ein ClearType für alle, nur dass das Rendering mehr dem Stil von Mac OS entspricht. Dem Windows-User bietet sich damit die Möglichkeit, sich seine bevorzugte Methode des Font-Smoothings auszusuchen. Wie kann man nun aber FreeType unter Windows nutzen?

Die Lösung heißt GDI++.DLL und wurde von Dr. Watson entwickelt. Auch wenn der Name eher einen angelsächsischen Ursprung vermuten läßt, kommt er aus Japan, was die wenigen englischsprachigen Infos zur Software erklärt.

gdi++.dll is a replacement for the Windows default font rasteriser, which gives you a better font smoothing capability, just like Mac OS X. It hacks one of the most important core dlls for graphics, gdi32.dll.

Durch GDI++ werden also Funktionen der System-Bibliothek GDI32.DLL verändert, die u.a. für das Rendern der Schriftarten zuständig ist. GDI++ verwendet dabei andere Methoden zur Kantenglättung (die der FreeType-Bibliothek) und somit sieht auch das Ergebnis anders aus. Je nach Setup vergleichbar dem Erscheinungsbild unter Mac OS X.

Installation

Vergleich der Rendering-Methoden
Die Rendering-Methoden im Vergleich. Wer soll Dein Herzblatt sein?

Dr. Watson hat seine Aktivitäten bezüglich GDI++ zwar eingestellt, allerdings wird die Software trotzdem weiter entwickelt und so gibt es relativ viele verschiedene Pakete zum Download. Die von seiner Website sind mittlerweile bald drei Jahre alt, würde ich also nicht unbedingt empfehlen. Ich persönlich verwende die Downloads dieser japanischen Seite und mein Favorit ist dabei das Paket gdi0870.zip. Nach dem Entpacken wird der Ordner einfach an eine beliebige Stelle auf der Festplatte kopiert (z.B. C:\GDI) und die darin enthaltene Datei gditray.exe gestartet. Mit einem Rechtsklick auf das neue Symbol im Systray und Auswahl des Menüpunktes → Enable wird das neue Font-Rendering aktiviert. Über → Use Preferences kann man verschiedene Einstellungen testen und sich die Beste für seinen Bildschirm aussuchen.

Fein-Tuning

Wem die mitgelieferten INI-Dateien nicht ausreichen und wer Spaß am Experimentieren hat, der findet hier einige Erläuterungen zu den einzelnen Parametern. Dazu später mal ein eigener Artikel. In der jeweiligen INI-Datei kann man auch bestimmte Schriftarten oder Programme vom neuen Font-Rendering ausschließen. Bei ausgewählter Software soll es hier und da zu merkwürdigen Anzeigen kommen. Ich habe GDI++ seit ca. einem halben Jahr im Einsatz und habe bisher nur bei Elster Formular eine Macke festgestellt: Die Buchstaben werden alle vertikal gespiegelt dargestellt. Um also Schriftarten vom Rendering auszuschließen, genügt in der entsprechenden INI-Datei folgender Eintrag:

[Exclude]
Georgia
Times New Roman

Damit würden diese Schriftarten mit dem klassischen ClearType dargestellt. Genauso kann man Programme ausschließen:

[DenyModule]
itunes.exe
elfo2008.exe
elfostarter2008.exe

Hier z.B. iTunes und besagtes Elster Formular. Ansonsten konnte ich bisher keinerlei Probleme beim Einsatz von GDI++ feststellen. Unterm Strich sollte man GDI++ einfach mal probieren. Ich möchte es jedenfalls nicht mehr missen.


1 Krzysztof Szafranek, Font smoothing explained

2 Gibson Research Corporation, Sub-Pixel Font Rendering Technology

3 Joel Spolsky, Font smoothing, anti-aliasing and sub-pixel rendering

Konversation  

Kommentare



Konversation  

Artikel kommentieren








Kommentare können mit (X)HTML-Elementen oder mit Textile ausgezeichnet werden. Es werden nicht alle Elemente unterstützt. Diesbezüglich gilt: »Weniger ist mehr.«

Smallprint

Impressum & Co.

HA·BÁ·RI