Ho scritto una piccola applicazione che disegna testo su immagini in memoria e li scrive su file. Il codice di base Delphi è simile a:Come posso sovrascrivere l'impostazione ClearType quando disegno il testo utilizzando l'API Win32?
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;
Purtroppo il testo elaborato è diverso a seconda dell'impostazione ClearType del computer che esegue l'applicazione. Mi piacerebbe avere un output coerente nella mia applicazione indipendentemente dall'impostazione ClearType locale (l'output non viene comunque visualizzato direttamente sullo schermo). C'è qualche opzione API Win32 per sovrascrivere le impostazioni ClearType locali?
È inoltre possibile utilizzare la qualità anti-aliasing, che esegue il rendering con antialiasing vecchio stile, ovvero senza Cleartype. Questo ti dà un testo di qualità decente che apparirà migliore del testo disegnato senza alcun tipo di smussamento dei caratteri. –