Как исправить размытое/пиксельное отображение шрифта на красном/синем фоне (Windows, Firefox, Chrome и др.)?

В Windows и, в некоторой степени, в Mac OS, с различными браузерами (Firefox, Chrome, Safari) наша строка меню имеет довольно пикселизированную/размытую отрисовку шрифта. Это на сайте ASP.NET Core 2.1, который использует Bootstrap 4.1.3, но его достаточно легко воспроизвести с помощью простого HTML: https://jsfiddle.net/2tgc9r84/

<html>
  <body style="background-color:#e72c87;">
  <p style="font-size:20pt;">
    This is some text that looks terrible.
  </p>
  </body>
</html>

Интересно, что тот же шрифт прекрасно отображается в других частях сайта. Я заметил это на мониторе 4K с активированным масштабированием 150%, но проблема также проявляется при 100%. Я также пробовал это с разными шрифтами, так что, видимо, это не проблема со шрифтом.

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

Вы можете напрямую посмотреть на сайт, где это происходит, здесь: https://beat-the-rhythm-vr.com/Home/Social (навигация с размытым текстом появляется после принятия файлов cookie).

Вот изображение, демонстрирующее эффект с разным фоном, а также отрендеренное в Mac OS (скриншоты Mac OS на изображении меньше):

Изображение, иллюстрирующее проблему размытого/пиксельного рендеринга шрифтов

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

Вот как это выглядит на iOS (я получаю такое же размытие в Windows, когда делаю окно достаточно маленьким, чтобы получить тот же макет, что и на мобильном устройстве, так что это также не проблема, вызывающая это/исправление):

введите здесь описание изображения

Очевидный вопрос: можно ли это как-то исправить, и если да, то как?

РЕДАКТИРОВАТЬ: это в дополнение к комментарию к ответу Портера (я не могу добавлять скриншоты в комментарии, поэтому публикую это здесь):

Сравнение скриншотов на моем компьютере и компьютере Портера

РЕДАКТИРОВАТЬ 2: Хотя эта статья посвящена немного другой проблеме, я предполагаю, что то, что я вижу, на самом деле является просто ограничением ClearType, которое связано с тем, что описано в статье: ClearType с учетом цвета требует доступа к фиксированным фоновым пикселям, что является проблемой, если вы не знаете, что такое фоновые пиксели, или если они не исправлены

ClearType, по-видимому, не работает, когда цвет фона неизвестен, и, судя по тому, что я вижу, он предназначен в первую очередь для черного текста на белом фоне, также хорошо работает со светлыми цветами на темном фоне, но не так сильно. для красного/синего/пурпурного фона (и любого цвета шрифта).


person Jashan    schedule 06.09.2019    source источник


Ответы (1)


Я не могу воспроизвести это на дисплее 1080p или 4K с мобильным или веб-представлением в Firefox и Chrome. Шрифты имеют тенденцию смешиваться с цветом фона, поэтому не каждый пиксель шрифта будет одного цвета; Он будет сливаться по краям. Чем меньше шрифт, тем меньше пикселей ему приходится использовать для смешивания. Если вы используете более крупный шрифт, возникает ли та же проблема?

введите здесь описание изображения

person Porter Lyman    schedule 06.09.2019
comment
С более крупными шрифтами возникает та же проблема — просто это не так очевидно и некрасиво. Моя первая мысль заключалась в том, что это связано с масштабированием Windows для монитора 4K. Неправильное масштабирование выглядит очень похоже, но с другими цветами фона оно выглядит кристально чистым. Ваш скриншот также выглядит лучше, чем то, что я вижу на своем экране, за исключением того, что когда я просматриваю ваш и мой скриншоты бок о бок, ваш на самом деле выглядит немного хуже. Я добавлю сравнение с исходной публикацией в конце. - person Jashan; 07.09.2019
comment
После просмотра светло-серого текста на темном фоне, который выглядит совершенно четким на моем экране, немного увеличенного, я предполагаю, что это действительно проблема с восприятием и тем, как ClearType использует расположение цветовых пикселей на этом экране, и это просто не работает. когда в фоновом цвете преобладают синий и красный. Интересно, что в Adjust ClearType Text есть только черный текст на белом фоне. Возможно, мой единственный вариант с текущей технологией - использовать другой цвет фона :-( ... РЕДАКТИРОВАТЬ: И да, включение / выключение ClearType имеет значение только для черного текста на белом. - person Jashan; 07.09.2019
comment
Это интересно. ClearType — новая концепция для меня, но увлекательное чтение. У тебя хороший глаз, я бы никогда не заметил проблему. Надеюсь, имея в виду ClearType, вы сможете найти подходящую цветовую комбинацию. - person Porter Lyman; 08.09.2019