Почему для сглаживания черных символов используются цвета, отличные от оттенков серого?

17

Я разработчик, я не графический дизайнер. Но есть один вопрос, который меня беспокоит, так как я заметил это несколько лет назад.

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

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

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

Вопрос: Почему цвета, отличающиеся от найденных в оттенках серого, используются для сглаживания черного символа на белом фоне?

PS: Я бы создал тег «сглаживание», если бы у меня было достаточно репутации.


Обновление : я думал о теории сейчас.
Если буквы предназначены для отображения на мониторе компьютера, а наименьшая часть экрана, которая может быть черной, представляет собой целый пиксель, состоящий из трех маленьких источников света, это приведет к тому, что наименьшая точка в любой букве будет довольно большой, но если сглаживание, состоящее из окружающих или внутренних точек, может быть представлено только для 1/3 пикселя при некоторой помощи от цвета в сторону, что будет означать, что буквы могут быть намного меньше.

Это оно ?

MarceloRamires
источник
5
Это именно так. Это называется «субпиксельный рендеринг»: en.wikipedia.org/wiki/Subpixel_rendering
DA01
1
При рендеринге шрифтов «сглаживание» в градациях серого обычно называют сглаживанием, а эту красочную версию называют субпиксельным рендерингом . В дополнение к ссылке @ DA01 см. Также: en.wikipedia.org/wiki/Font_rasterization
Яри ​​Кейнянен,
1
пожалуйста, отправьте свое обновление как ответ, когда у вас будет возможность :)
JamesHenare
Ух, я все понял ... спасибо за ссылки и объяснения всем!
MarceloRamires

Ответы:

10

Это называется clearType в окнах (или субпиксельное рендеринг, как сказал Марсело). Идея состоит в том, что вместо использования 1 значения на 1 пиксель:
(127,127,127) <Grey,

мы можем сделать левую сторону этого пикселя менее интенсивной, а правую - более
(55,127,185) - голубоватый оттенок,

а затем то же самое для правосторонних пикселей
(185,127,55) - оранжевый оттенок
под ним показывает (без AA) - (тип раннего сброса) - (обычный тип AA) - (последний тип сброса)
введите описание изображения здесь

По моему мнению, это хорошо работает только для маленьких шрифтов (например, тот, который вы сейчас читаете).
Для обычной графики вы используете обычный AA (на самом деле Photoshop не поддерживает clearType).
Надеюсь, это поможет! наслаждаться

Miro
источник
3

Мое предположение было правильным в конце концов:

Если буквы предназначены для отображения на мониторе компьютера, а наименьшая часть экрана, которая может быть черной, представляет собой целый пиксель, состоящий из трех маленьких источников света, это приведет к тому, что наименьшая точка в любой букве будет довольно большой, но если сглаживание, состоящее из окружающих или внутренних точек, может быть представлено только для 1/3 пикселя при некоторой помощи от цвета в сторону, что будет означать, что буквы могут быть намного меньше.

Проверьте комментарии в вопросах для получения дополнительной помощи от DA01 и koiyu (спасибо).


Просто для справки, вот ссылки на Википедию в комментариях от DA01 и koiyu:

MarceloRamires
источник