Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# GDI+ DrawString: Kantenglättung streikt bei großer Schrift (https://www.delphipraxis.net/75390-gdi-drawstring-kantenglaettung-streikt-bei-grosser-schrift.html)

OregonGhost 18. Aug 2006 18:13


GDI+ DrawString: Kantenglättung streikt bei großer Schrift
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe einen einfachen Schriftartenbetrachter programmiert, bzw. bin noch dabei. Dabei bin ich auf ein unangenehmes Problem gestoßen, und zwar wird ab einer bestimmten Schriftgröße die Schrift nicht mehr geglättet (siehe Anhang). Im Betriebssystem ist ClearType aktiviert, und auch ein beliebiges Herumspielen an den Einstellungen des Graphics-Objekts ändert nichts. Schriftgröße 48 wird noch geglättet, darüber nicht mehr. In anderen Anwendungen funktioniert die Glättung. Woran kann das liegen?

Der Code zum Zeichnen sieht ungefähr so aus (gekürzt):
Code:
using (Font font = CreateDefaultFont(family, 16)) {
    e.Graphics.DrawString(smallTestText, font, SystemBrushes.WindowText, 2, 16);
}

using (Font font = CreateDefaultFont(family, 64)) {
    e.Graphics.DrawString(bigTestText, font, SystemBrushes.WindowText, 2, 32);
}
CreateDefaultFont erzeugt die Schriftart einfach mit dem ersten gefundenen Stil (gibt ja auch Schriftarten, für die es keinen Regular-Stil gibt), also im Prinzip nur
Code:
return new Font(family, height, fontStyle);
Edit:
Musste gerade feststellen, dass das Problem nicht bei jeder Schriftart auftritt - aber bei allen Schriftarten, bei denen es bei mir auftritt, sind keine Probleme in anderen Anwendungen festzustellen.

OregonGhost 19. Aug 2006 10:18

Re: GDI+ DrawString: Kantenglättung streikt bei großer Schri
 
Hmm, seltsam. Ich hatte beim Herumprobieren eine der Einstellungen vergessen, wenn ich den TextRenderingHint auf AntiAliasGridFit stelle, hab ich Glättung - die normale, also hässliche. ClearType lässt sich auf keinem Weg dazu überreden, die große Schrift zu glätten. Aber, und das ist ein großes Aber, in anderen Anwendungen funktioniert ClearType bei großen Schriften...
Das kann's doch nicht sein, dass ich ab einer bestimmten Schriftgröße die Glättung umstellen muss, oder? Zumal es in anderen Anwendungen (selbst in Wordpad) ja funktioniert -.-


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz