Подтвердить что ты не робот

Отключить Cleartype (текстовое сглаживание) в IE9

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

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

Подробнее:

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

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

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

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

Усугубив ситуацию, если вы отключите ClearType в ОС, в некоторых случаях IE вернется к анти-сглаживанию по умолчанию, отличному от DirectWrite, которое еще более суетло, чем ClearType.

4b9b3361

Ответ 1

После нескольких дней поиска я нашел форум сообщений MSDN, который указал мне на решение здесь: 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.

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

Метод, который я использовал, чтобы отключить Sub-pixel интересно создать простой обертка для 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.

Ответ 2

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

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

Итак, попробуйте переключить свой doctype, чтобы использовать Режим Quirks:

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

Другое дело - попытаться избежать точечных размеров шрифтов.


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

Источники MSDN:

Ответ 3

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

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

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

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

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