Технология сглаживания ClearType
Технология сглаживания Microsoft® ClearType™ - способ сглаживания, который улучшает разрешающую способность дисплея показывать шрифт в традиционной манере сглаживания. Эта технология резко улучшает удобочитаемость в цвете LCD мониторов с цифровым интерфейсом, типа тех, которые в портативных ЭВМ, и высококачественных настольных мониторов с плоским экраном. Удобочитаемость на экранах с трубками CRT также несколько улучшается.
Однако, ClearType зависит от ориентации и расположения полос на LCD. В настоящее время, ClearType реализован только для LCD с вертикальными полосами, которые упорядочивают RGB. В частности это воздействует на планшетные PC, где дисплей может ориентироваться в любом направлении, и на те экраны, которые могут быть преобразованы из альбомной в портретную ориентацию.
Технология сглаживания ClearType разрешается:
Для 16-, 24-, и 32-битового цвета (запрещается для 256 цветов или меньше)
Для экранных DC и DC в памяти (но не для принтерных DC)
Для шрифтов формата TrueType и OpenType с контурами TrueType
Технология сглаживания ClearType запрещается:
В среде клиентского терминального сервера
Для растровых, векторных, машинных, Type 1, или Postscript OpenType шрифтов без контуров TrueType
Если шрифт настроен как внедренный растровый, то только для тех размеров шрифта, которые содержат внедренные битовые образы
Чтобы активизировать технологию сглаживания ClearType, вызовите функцию
SystemParametersInfo один раз, чтобы включить сглаживание шрифта, а затем второй раз, чтобы установить тип сглаживания в FE_FONTSMOOTHINGCLEARTYPE, как показано в примере кода ниже:
SystemParametersInfo(SPI_SETFONTSMOOTHING, TRUE, 0, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETFONTSMOOTHINGTYPE, FE_FONTSMOOTHINGCLEARTYPE, 0, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); |
Вы можете корректировать появление текста, изменяя контрастное значение, используемое в алгоритме ClearType. Значение по умолчанию равно 1400, но оно может быть любым значением от 1000 до 2200. В зависимости от устройства показа и чувствительности пользователя к цветам, повышая или снижая контраст, это значение может улучшать удобочитаемость. Чтобы изменить контраст, вызовите функцию
SystemParametersInfo с флажком SPI_SETFONTSMOOTHINGCONTRAST. Нижеследующий код устанавливает значение контраста 1600.
SystemParametersInfo (SPI_SETFONTSMOOTHINGCONTRAST,1600, 0, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
|
Вам следует учитывать нижеследующие детали для совместимости приложения:
Воспроизведение текста с ClearType несколько медленнее, чем со стандартным сглаживанием.
Прикладные программы не должны использовать XOR, чтобы показать на экране выбранный текст. Они должны установить цвет фона и повторно показывать на экране выбранный текст.
Прикладные программы не должны рисовать тот же самый текст поверх себя в прозрачном режиме. Если это происходит, пиксели краев, которые сглаживаются, окрасятся, сливаясь между собой вместо цвета фона. Это имеет своим результатом затемненные и раскрашенные кромки знаков.
Прикладные программы не должны писать текст, рисуя символы отдельно, когда находятся в непрозрачном режиме, потому что кромка символа может быть отсечена следующим знаком. Это происходит потому, что символ, который сглаживается при помощи ClearType, может иметь отрицательную А или C ширину, где обычный символ имеет эти величины положительными. Только ширина символа B гарантированно будет той же самой. Аналогично, прикладные программы должны быть внимательными, если приглаженный текст находится рядом с не приглаженным текстом.
Если приложение представляет текст, а затем манипулирует точечным рисунком, сглаживание шрифта должно быть выключено путем установки члена
lfQuality структуры LOGFONT в значение NONANTIALIASED_QUALITY. Например, игра может добавить точечный рисунок с теневым эффектом, или текст, предоставленный точечным рисунком может масштабироваться, чтобы произвести курсор в виде пальца.Если пользователь запускает изображение в портретном режиме (то есть полосы видеомонитора горизонтальные) технология сглаживания ClearType должна быть заблокирована.
Параметр
fdwQuality в функции CreateFont и член lfQuality структуры LOGFONT принимают флажок CLEARTYPE_QUALITY. Растеризация шрифтов, созданных с этим флажком будет использовать растеризатор ClearType. Этот флажок не имеет никакого влияния в предшествующих версиях операционной системы.