私は、メモリ内の画像にテキストを描画し、ファイルに書き込む小さなアプリケーションを作成しました。 Delphiの基本的なコードは、次のようになります。Win32 APIを使用してテキストを描画するときにClearTypeの設定を上書きするにはどうすればよいですか?
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;
残念ながら、描画されるテキストは、アプリケーションを実行しているコンピュータのClearType設定によって異なります。ローカルClearType設定(出力は直接画面には表示されません)に関係なく、アプリケーションで一貫した出力を得たいと思います。ローカルのClearType設定を上書きするWin32 APIオプションがありますか?
アンチエイリアス処理された画質を使用することもできます。これは、古いスタイルのアンチエイリアス(つまり、クリアタイプなし)でレンダリングされます。それはあなたにまともな品質のテキストを与えます。このテキストは、フォントのスムージングなしで描画されたテキストよりもよく見えます。 –