ClearType Antialiasing (Anti-aliasing ClearType)
Microsoft ClearType antialiasing è un metodo di smoothing che migliora la risoluzione della visualizzazione dei tipi di carattere rispetto all'antialiasing tradizionale. Migliora notevolmente la leggibilità sui monitor LCD a colori con un'interfaccia digitale, ad esempio quelle nei portatili e nei display desktop flat di alta qualità. La leggibilità nelle schermate CRT è anche migliorata.
ClearType dipende tuttavia dall'orientamento e dall'ordinamento delle strisce LCD. Attualmente ClearType viene implementato solo per I dischi rigidi con strisce verticali ordinate RGB. In particolare, questo influisce sui PC tablet, in cui la visualizzazione può essere orientata in qualsiasi direzione e quelle schermate che possono essere trasformate da orizzontale a verticale.
ClearType antialiasing è consentito:
- Per colore a 16, 24 e 32 bit (disabilitato per 256 colori o meno)
- Per dc dello schermo e controller di dominio di memoria (non per il controller di dominio stampante)
- Per i tipi di carattere TrueType e i tipi di carattere OpenType con struttura TrueType
ClearType antialiasing è disabilitato:
- Nel client del server terminale
- Per tipi di carattere bitmap, tipi di carattere vettoriale, tipi di carattere del dispositivo, tipi di carattere Type 1 o tipi di carattere OpenType Postscript senza struttura TrueType
- Se il tipo di carattere ha ottimizzato le bitmap incorporate, solo per quelle dimensioni del carattere che contengono le bitmap incorporate
Per attivare l'antialiasing ClearType, chiamare SystemParametersInfo una volta per attivare lo smoothing dei tipi di carattere e quindi una seconda volta per impostare il tipo di smoothing su FE_FONTSMOOTHINGCLEARTYPE, come illustrato nell'esempio di codice seguente:
SystemParametersInfo(SPI_SETFONTSMOOTHING,
TRUE,
0,
SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
SystemParametersInfo(SPI_SETFONTSMOOTHINGTYPE,
0,
(PVOID)FE_FONTSMOOTHINGCLEARTYPE,
SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
È possibile modificare l'aspetto del testo modificando il valore di contrasto usato nell'algoritmo ClearType. Il valore predefinito è 1.400, ma può essere qualsiasi valore compreso tra 1.000 e 2.200. A seconda del dispositivo di visualizzazione e della sensibilità dell'utente ai colori, un valore di contrasto superiore o inferiore potrebbe migliorare la leggibilità. Per modificare il contrasto, chiamare SystemParametersInfo con SPI_SETFONTSMOOTHINGCONTRAST. Il codice seguente imposta il valore di contrasto su 1.600.
SystemParametersInfo(SPI_SETFONTSMOOTHINGCONTRAST,
0,
(PVOID)1600,
SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
È consigliabile considerare i dettagli seguenti per la compatibilità dell'applicazione:
- Il rendering del testo con ClearType è leggermente più lento rispetto all'antialiasing standard.
- Le applicazioni non devono usare XOR per visualizzare il testo selezionato. Le applicazioni devono impostare il colore di sfondo e riprodurre nuovamente il testo selezionato.
- Le applicazioni non devono disegnare lo stesso testo sopra se stesso in modalità trasparente. In questo caso, i pixel del bordo antialiased si fonderanno con se stessi anziché con il colore di sfondo. Ciò comporta bordi scuri e colorati.
- Le applicazioni non devono disegnare testo di disegno singolarmente quando in modalità opaca perché il bordo di un carattere può essere ritagliato dal carattere seguente. Ciò si verifica perché un carattere uniforme con ClearType può avere una larghezza A o C negativa in cui il carattere regolare ha una larghezza A o C positiva. Solo la larghezza B del carattere è garantita come la stessa. Analogamente, le applicazioni devono prestare attenzione se il testo lisciato è accanto al testo nonsmoothed.
- Se un'applicazione esegue il rendering del testo e quindi modifica la bitmap, l'smoothing del tipo di carattere deve essere disattivato impostando il membro lfQuality della struttura LOGFONT su NONANTIALIASED_QUALITY. Ad esempio, un gioco può aggiungere un effetto shadow bitmap o il testo sottoposto a rendering in una bitmap può essere ridimensionato per produrre una visualizzazione personale.
- Se l'utente è in esecuzione in modalità verticale( ovvero, il monitoraggio dello striping è orizzontale) ClearType antialiasing deve essere disabilitato.
Il parametro fdwQuality in CreateFont e il membro lfQuality di LOGFONT accettano il flag di CLEARTYPE_QUALITY. La rasterizzazione dei tipi di carattere creati con questo flag userà il rasterizer ClearType. Questo flag non ha alcun effetto sulle versioni precedenti del sistema operativo.