Napisałem małą aplikację, która rysuje tekst na zdjęciach w pamięci i zapisuje je w plikach. Podstawowy kod Delphi wygląda podobnie do:Jak mogę przesłonić ustawienie ClearType podczas rysowania tekstu przy użyciu interfejsu Win32 API?
var
Canvas : tCanvas;
Text : WideString;
TextRect : tRect;
begin
Canvas := Bitmap.Canvas;
Canvas.Brush.Color := clBlack;
Canvas.Pen.Color := clBlack;
Canvas.Font.Name := 'Courier New';
Canvas.Font.Size := 11;
Canvas.Font.Color := clWhite;
TextRect := ...; // calculate text position
DrawTextW(Canvas.Handle, PWideChar(Text), Length(Text), TextRect, DT_NOCLIP or DT_NOPREFIX or DT_SINGLELINE or DT_CENTER or DT_VCENTER);
end;
Niestety rysowane tekst różni się w zależności od ustawienia ClearType komputera z uruchomioną aplikacją. Chciałbym mieć spójne dane wyjściowe w mojej aplikacji, niezależnie od lokalnego ustawienia ClearType (dane wyjściowe nie są wyświetlane bezpośrednio na ekranie). Czy istnieje opcja Win32 API, która zastępuje lokalne ustawienia ClearType?
Można również użyć wygładzonej jakości, która renderuje się z antyaliasingiem w starym stylu - tzn. Bez typu Cleartype. Daje to przyzwoitą jakość tekstu, który będzie wyglądał lepiej niż tekst narysowany bez wygładzania czcionek. –