Перейти к содержимому
pdftools.kz

Что такое антиалиасинг

Антиалиасинг — приём, при котором край буквы или линии рисуется не одним чёрным пикселем, а несколькими серыми разной насыщенности. Глаз усредняет их и видит ровную границу вместо лесенки. Плата — цвет: там, где в векторе была чистая чёрная линия, в растре появляется полоса промежуточных оттенков. Для чтения это благо. Для сжатия, распознавания и двухцветных фильтров — помеха, потому что полутона и кодируются дороже, и порог между чёрным и белым размывают.

Локально в браузеребез регистрации

Коротко о цифрах

Что рисуется на краю
пиксели промежуточной насыщенности вместо ступеньки
Как считается оттенок
по доле площади пикселя, накрытой фигурой
Почему один шаг уменьшения хуже
переход 4000 → 800 отбрасывает четыре пикселя из пяти
Как уменьшаем мы
делением стороны пополам, сглаживание качества high
Формат для схем и скриншотов
PNG — хранит серые края без своих артефактов

Откуда берутся серые пиксели

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

Чем крупнее кегль и выше разрешение, тем меньше доля таких пограничных пикселей и тем незаметнее сам приём. На восьмом кегле при семидесяти двух точках на дюйм в букве почти не остаётся чистых пикселей — вся она состоит из краёв, и текст выглядит серым, а не чёрным.

Где сглаживание мешает

  • Двухцветные фильтры сжатия требуют ровно двух значений; полутона перед упаковкой приходится загонять обратно в чёрное и белое, и тонкие штрихи при этом рвутся.
  • Распознавание текста тоже начинается с бинаризации, и размытый край даёт больше ошибок на буквах, различающихся тонкой деталью.
  • Кодирование JPEG хуже всего справляется как раз с резкими переходами, а сглаженный край — это цепочка таких переходов.
  • Тонкая линия толщиной меньше пикселя не может стать чёрной в принципе: она распределяется между двумя серыми и на бумаге печатается бледной.

Как с этим обращаться на практике

  • Не боритесь со сглаживанием — поднимайте разрешение. Триста точек на дюйм оставляют мелкому шрифту достаточно чистых пикселей внутри штриха.
  • Схемы, чертежи и скриншоты с текстом сохраняйте в PNG: он хранит серые края точно, а JPEG добавляет к ним собственные разводы.
  • При уменьшении картинки не прыгайте сразу к целевому размеру: прямой переход от четырёх тысяч пикселей к восьмистам выбрасывает четыре пикселя из пяти.
  • Наше уменьшение идёт ступенями с делением стороны пополам и сглаживанием высокого качества, а последний шаг попадает точно в заданный размер.

Частые вопросы

Можно ли отключить сглаживание при экспорте страницы в картинку?

В браузерном рендере — нет, и это правильно: без него мелкий шрифт рассыпается на ступеньки и становится нечитаемым. Если нужен чистый чёрно-белый результат, поднимите разрешение и бинаризуйте картинку отдельно.

Почему чёрный текст на экспортированной картинке выглядит серым?

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

Отчего у скриншота с текстом появляется цветная бахрома?

Это субпиксельное сглаживание: система рисует края, используя красную, зелёную и синюю полоски пикселя по отдельности. На чужом экране с другим порядком полосок такая картинка выглядит грязной.

Что лучше для документа — резкие края или сглаженные?

Для чтения с экрана и печати — сглаженные. Резкие имеют смысл только там, где картинка пойдёт в двухцветное сжатие или в распознавание, и тогда порог лучше задать осознанно, а не получить его случайно.

Рядом