ClearType-Antialiasing

Microsoft ClearType-Antialiasing ist eine Glättungsmethode, die die Schriftanzeigeauflösung gegenüber herkömmlichem Antialiasing verbessert. Es verbessert die Lesbarkeit auf Farb-LCD-Monitoren mit digitaler Schnittstelle, z. B. auf Laptops und hochwertigen flachen Desktop-Displays. Die Lesbarkeit auf CRT-Bildschirmen wurde ebenfalls etwas verbessert.

ClearType ist jedoch von der Ausrichtung und Reihenfolge der LCD-Streifen abhängig. ClearType wird derzeit nur für LCDs mit vertikalen Streifen implementiert, die rgb sortiert sind. Dies betrifft insbesondere Tablet-PCs, bei denen das Display in jede Richtung ausgerichtet werden kann, und die Bildschirme, die vom Querformat zum Hochformat gedreht werden können.

ClearType-Antialiasing ist zulässig:

  • Für 16-, 24- und 32-Bit-Farben (deaktiviert für 256 Farben oder weniger)
  • Für Bildschirm DC und Speicher DC (nicht für Drucker DC)
  • Für TrueType-Schriftarten und OpenType-Schriftarten mit TrueType-Gliederungen

ClearType-Antialiasing ist deaktiviert:

  • Unter Terminalserverclient
  • Für Bitmapschriftarten, Vektorschriftarten, Geräteschriftarten, Typ 1-Schriftarten oder Postscript-OpenType-Schriftarten ohne TrueType-Gliederungen
  • Wenn die Schriftart über abgestimmte eingebettete Bitmaps verfügt, nur für die Schriftgrößen, die die eingebetteten Bitmaps enthalten

Um das ClearType-Antialiasing zu aktivieren, rufen Sie Einmal SystemParametersInfo auf, um die Schriftglättung zu aktivieren, und dann ein zweites Mal, um den Glättungstyp auf FE_FONTSMOOTHINGCLEARTYPE festzulegen, wie im folgenden Codebeispiel gezeigt:

SystemParametersInfo(SPI_SETFONTSMOOTHING,
                     TRUE,
                     0,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
SystemParametersInfo(SPI_SETFONTSMOOTHINGTYPE,
                     0,
                     (PVOID)FE_FONTSMOOTHINGCLEARTYPE,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 

Sie können die Darstellung von Text anpassen, indem Sie den im ClearType-Algorithmus verwendeten Kontrastwert ändern. Der Standardwert ist 1.400, kann jedoch ein beliebiger Wert zwischen 1.000 und 2.200 sein. Abhängig vom Anzeigegerät und der Farbempfindlichkeit des Benutzers kann ein höherer oder niedrigerer Kontrast die Lesbarkeit verbessern. Um den Kontrast zu ändern, rufen Sie SystemParametersInfo mit SPI_SETFONTSMOOTHINGCONTRAST auf. Der folgende Code legt den Kontrastwert auf 1.600 fest.

SystemParametersInfo(SPI_SETFONTSMOOTHINGCONTRAST,
                     0,
                     (PVOID)1600,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 

Sie sollten die folgenden Details für die Anwendungskompatibilität berücksichtigen:

  • Das Textrendering mit ClearType ist etwas langsamer als bei Standard-Antialiasing.
  • Anwendungen sollten XOR nicht verwenden, um ausgewählten Text anzuzeigen. Anwendungen sollten die Hintergrundfarbe festlegen und den ausgewählten Text erneut anzeigen.
  • Anwendungen sollten im transparenten Modus nicht denselben Text über sich selbst zeichnen. Wenn dies der Fall ist, werden die Randpixel, die antialiased sind, mit sich selbst und nicht mit der Hintergrundfarbe zusammengeführt. Dies führt zu abgedunkelten und bunten Kanten.
  • Anwendungen sollten keinen Text zeichnen, indem sie die Zeichen im undurchsichtigen Modus einzeln malen, da der Rand eines Zeichens möglicherweise durch das folgende Zeichen abgeschnitten wird. Dies tritt auf, weil ein Mit ClearType geglättetes Zeichen möglicherweise eine negative A- oder C-Breite aufweisen kann, wobei das reguläre Zeichen eine positive A- oder C-Breite aufweist. Nur die Breite B des Zeichens ist garantiert gleich. Ebenso sollten Anwendungen vorsichtig sein, wenn sich geglätteter Text neben unbefriedigtem Text befindet.
  • Wenn eine Anwendung Text rendert und dann die Bitmap bearbeitet, sollte die Schriftartglättung deaktiviert werden, indem das Element lfQuality der LOGFONT-Struktur auf NONANTIALIASED_QUALITY festgelegt wird. Beispielsweise kann ein Spiel einen Bitmapschatteneffekt hinzufügen, oder der in eine Bitmap gerenderte Text kann skaliert werden, um eine Thumbview zu erzeugen.
  • Wenn der Benutzer im Hochformatmodus ausgeführt wird (d. h. das Überwachen des Stripings ist horizontal), sollte die ClearType-Antialiasing deaktiviert werden.

Der fdwQuality-Parameter in CreateFont und das lfQuality-Element von LOGFONT akzeptieren das flag CLEARTYPE_QUALITY. Bei der Rasterung von Schriftarten, die mit diesem Flag erstellt wurden, wird der ClearType-Rasterizer verwendet. Dieses Flag hat keine Auswirkungen auf frühere Versionen des Betriebssystems.