Dela via


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.