ClearType Antialiasing
Microsoft ClearType-antialias är en utjämningsmetod som förbättrar teckenvisningsupplösningen jämfört med traditionell antialiasering. Det förbättrar läsbarheten dramatiskt på LCD-skärmar med ett digitalt gränssnitt, till exempel de i bärbara datorer och högkvalitativa platta skrivbordsskärmar. Läsbarheten på CRT-skärmar förbättras också något.
ClearType är dock beroende av lcd-rändernas orientering och ordning. För närvarande implementeras ClearType endast för LCD-skärmar med lodräta ränder som är sorterade RGB. I synnerhet påverkar detta surfplattor, där skärmen kan orienteras i valfri riktning, och de skärmar som kan vändas från liggande till stående.
ClearType-antialias tillåts:
- För 16-, 24- och 32-bitarsfärg (inaktiverad för 256 färger eller mindre)
- För skärm-DC och minnes-DC (inte för skrivar-DC)
- För TrueType-teckensnitt och OpenType-teckensnitt med TrueType-konturer
ClearType-antialias är inaktiverat:
- Under terminalserverklient
- För bitmappsteckensnitt, vektorteckensnitt, enhetsteckensnitt, Typ 1-teckensnitt eller Postscript OpenType-teckensnitt utan TrueType-konturer
- Om teckensnittet har finjusterade inbäddade bitmappar är det bara för de teckenstorlekar som innehåller de inbäddade bitmapparna
Om du vill aktivera ClearType-antialias anropar du SystemParametersInfo en gång för att aktivera teckensnittsutjämning och sedan en andra gång för att ange utjämningstypen till FE_FONTSMOOTHINGCLEARTYPE, som du ser i följande kodexempel:
SystemParametersInfo(SPI_SETFONTSMOOTHING,
TRUE,
0,
SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
SystemParametersInfo(SPI_SETFONTSMOOTHINGTYPE,
0,
(PVOID)FE_FONTSMOOTHINGCLEARTYPE,
SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
Du kan justera textens utseende genom att ändra det kontrastvärde som används i ClearType-algoritmen. Standardvärdet är 1 400, men det kan vara valfritt värde från 1 000 till 2 200. Beroende på visningsenheten och användarens känslighet för färger kan ett högre eller lägre kontrastvärde förbättra läsbarheten. Om du vill ändra kontrasten anropar du SystemParametersInfo med SPI_SETFONTSMOOTHINGCONTRAST. Följande kod anger kontrastvärdet till 1 600.
SystemParametersInfo(SPI_SETFONTSMOOTHINGCONTRAST,
0,
(PVOID)1600,
SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
Du bör överväga följande information för programkompatibilitet:
- Textåtergivning med ClearType är något långsammare än med standardantialiasering.
- Program bör inte använda XOR för att visa markerad text. Program bör ange bakgrundsfärgen och återspela den markerade texten.
- Program bör inte måla samma text ovanpå sig själv i transparent läge. Om detta inträffar kommer de kantpixlar som är antialiaserade att färgsammanslå med sig själva i stället för med bakgrundsfärgen. Detta resulterar i mörka och färgglada kanter.
- Program bör inte måla text genom att måla tecknen individuellt när de är i ogenomskinligt läge eftersom kanten på ett tecken kan klipps av följande tecken. Detta beror på att ett tecken som är utjämnat med ClearType kan ha en negativ A- eller C-bredd där det vanliga tecknet har en positiv A- eller C-bredd. Endast B-bredden på tecknet garanteras vara densamma. På samma sätt bör applikationer vara försiktiga om den slätade texten är bredvid osläta text.
- Om ett program återger text och sedan ändrar bitmappen bör teckensnittsutjämning inaktiveras genom att ange lfQuality medlem i LOGFONT- struktur till NONANTIALIASED_QUALITY. Ett spel kan till exempel lägga till en bitmappsskugga eller så kan text som återges i en bitmapp skalas för att skapa en tumvy.
- Om användaren använder stående läge (d.v.s. att bildskärmens ränder är horisontella) ska ClearType-antialiasering inaktiveras.
Parametern fdwQuality i CreateFont och lfQuality medlemmen i LOGFONT accepterar flaggan CLEARTYPE_QUALITY. Rastrering av teckensnitt som skapats med den här flaggan använder ClearType-rastreringen. Den här flaggan påverkar inte tidigare versioner av operativsystemet.