Отключить Cleartype (текстовое сглаживание) в IE9 - PullRequest
16 голосов
/ 25 марта 2011

Хорошо задокументировано (например, здесь ), что IE9 игнорирует общесистемные настройки сглаживания шрифтов (также называемые сглаживанием). Даже если сглаживание шрифтов и ClearType отключены в Windows, IE по-прежнему показывает сглаженные шрифты, которые некоторые пользователи пытаются прочитать, особенно при небольших размерах шрифта.

Как отключить сглаживание всех шрифтов (ClearType или другое) в IE9?

Подробнее:

Наша компания создает веб-приложение, которое использует множество мелких шрифтов. С выпуском IE9 некоторые из наших пользователей жаловались, что сглаживание по умолчанию в IE9 делает наши маленькие шрифты размытыми или размытыми. Поэтому мы должны помочь нашим пользователям, которые установили IE9 и которые хотят отключить сглаживание.

Кроме того, лично у меня возникают проблемы с чтением небольших сглаженных шрифтов, поэтому я хотел бы найти решение для собственного использования, даже для сайтов, которые я не контролирую.

В IE8 я мог снять флажок «Всегда использовать ClearType для HTML», а затем отключить ClearType в ОС, и IE8 отобразил бы все шрифты с псевдонимом. Но в IE9 эта опция отсутствует.

После некоторого исследования этой проблемы, вот что я узнал: основная проблема заключается в том, что IE полагается на DirectWrite для рендеринга текста и не поддерживает какие-либо новые параметры рендеринга, которые бы рисовали текст без сглаживания и уважали выбор по умолчанию для всей ОС пользователя.

Хуже того, если вы отключите ClearType в ОС, в некоторых случаях IE будет использовать сглаживание DirectWrite по умолчанию без сглаживания, которое даже более размыто, чем ClearType.

Ответы [ 3 ]

9 голосов
/ 25 марта 2011

После нескольких дней поиска я нашел ветку MSDN Forums , которая указала мне на решение здесь: http://www.softwareninjas.ca/dwrite-dll-wrapper

Следуйте инструкциям на этой странице, и вы удалите сглаживание из IE9 (по крайней мере, 32-разрядную версию IE, которая является IE по умолчанию, даже в 64-разрядной Windows 7). Я тестировал его на ноутбуке с Win7 x64, и он работал безупречно.

Большое спасибо Оливье Дагенаису, который построил это. Вот техническое резюме того, как работает его решение.

Это двухэтапный процесс. Во-первых, вам нужно отключить ClearType в IE через раздел реестра. Это тот же параметр, который был доступен в предыдущих версиях IE, но он был удален из пользовательского интерфейса IE, поскольку он перестал работать в IE9.

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"UseClearType"="no"

Во-вторых, теперь, когда ClearType отключен, Windows переключится на решение сглаживания не-cleartype. Теперь этот резервный антиалисинг также необходимо отключить. Цитата из ветки выше:

Осталось сглаживание шрифта (так называемый субпиксельный рендеринг), и это «эффект размытия» вы все еще видите после выключения cleartype.

Если вам интересно, есть способ отключить это тоже.

Метод, который я использовал, чтобы выключить субпиксельное чудо состоит в том, чтобы построить простую обертка для dwrite.dll, которая перехватывает и направляет вызовы на real dwrite.dll, отключение шрифта сглаживание в процессе.

Вы можете скачать его с: http://www.softwareninjas.ca/dwrite-dll-wrapper

Вы можете найти код на https://softwareninjas.kilnhg.com/Repo/Open-Source/Group/DWrite-dll-Wrapper

Это был довольно крутой взлом. Возможно, что-то хрупкое в окнах и выпусках DirectX, но пока будет добиваться цели, пока Microsoft не соберется вместе, чтобы исправить основную проблему «не может отключить сглаживание» в самом IE.

Он также работает для приложений, которые используют элемент управления IE WebBrowser (он же MSHTML), поэтому вы можете управлять сглаживанием для каждого приложения отдельно. Это также работает для просмотра справки HTML.

Обратите внимание, что качество текста в стандартном режиме IE9 не идеальное. В частности, маленькие шрифты иногда имеют буквы, иногда соединенные вместе без обычного однопиксельного промежутка между ними. Если вы отображаете ту же страницу в режиме совместимости (или ваш сайт использует нестрогую DTD или другую DTD, не поддерживающую стандарты), то она выглядит хорошо. Так что для некоторых сайтов есть дополнительный шаг, если они хотят получить наилучший псевдоним текста: просто просмотрите сайт в режиме совместимости, нажав кнопку совместимости на панели инструментов IE.

5 голосов
/ 13 апреля 2011

Чтобы ответить на ваш вопрос напрямую:

Визуализация шрифтов ClearType используется во всех режимах документа IE9;субпиксельное позиционирование используется только в стандартном режиме IE9 по умолчанию.Режимы совместимости IE9 - Quirks, 7 и 8 - используют целочисленные пиксельные текстовые метрики.

Поэтому попробуйте переключить ваш тип документа на использование Quirks mode :

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Еще одна вещь, которую следует учитывать, - стараться избегать размеров шрифта на основе точек .

Важная информация о шрифтах, размытости и рендеринге в IE9

MSDN источники:

0 голосов
/ 06 апреля 2013

Информация здесь решает две проблемы: 1. Избавление от cleartype и сглаживания шрифтов в IE9 2. Избавление от cleartype и сглаживания шрифтов, когда IE10 установлен или устанавливается автоматически

Я сделал взлом реестра.отключить cleartype в IE9: [HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ Main] "UseClearType" = "no" и использовал небольшую бесплатную программу для избавления от сглаживания шрифтов в IE9: https://softwareninjas.kilnhg.com/Repo/Open-Source/Group/DWrite-dll-Wrapper

Затем IE10 автоматически установился и тип размытия вернулся.Я попытался удалить IE 10, который был не через интерфейс добавления / удаления программ, а через интерфейс установленных обновлений - удаление обновления IE10.Это якобы вернуло меня к IE9, но расплывчатый тип остался, несмотря на то, что «нет» все еще было ответом на cleartype в реестре, а два DLL-файла все еще находились в моей папке с программой IE.

Итак, я решил удалить IE9 и переустановить его.Это также включало прохождение через интерфейс установленных обновлений и удаление обновления IE9.

Я перезагрузил компьютер и ожидал переустановки программы, но мой значок IE все еще был там.Когда я щелкнул по нему, IE9 открылся с хорошим, резким шрифтом.

...