Растеризация шрифтов
Эта статья нуждается в дополнительных цитатах для проверки . ( ноябрь 2009 г. ) |
Растеризация шрифта — это процесс преобразования текста из векторного описания (как в масштабируемых шрифтах, таких как шрифты TrueType ) в растровое или растровое описание. Часто это предполагает сглаживание текста на экране, чтобы сделать его более плавным и легким для чтения. Это также может включать в себя хинтинг — информацию, встроенную в данные шрифта, которая оптимизирует детали рендеринга для определенных размеров символов.
Виды растеризации
[ редактировать ]Самая простая форма растеризации — это простое рисование линий без какого-либо сглаживания. В терминологии Microsoft это называется двухуровневым (или более популярным «черно-белым») рендерингом, поскольку для рисования глифов не используются промежуточные оттенки (серого). (На самом деле в качестве переднего плана и фона можно использовать любые два цвета.) [1] Эту форму рендеринга также называют псевдонимом или «зубчатым». [2] Это самый быстрый метод рендеринга в том смысле, что он требует наименьших вычислительных усилий. Однако у него есть тот недостаток, что отображаемые глифы могут потерять четкость и стать трудно распознаваемыми при небольших размерах. Поэтому многие файлы данных шрифтов (например, TrueType) содержат подсказки , которые помогают растеризатору решить, где визуализировать пиксели для особенно проблемных областей глифов, или наборы вручную настроенных растровых изображений для использования с определенными размерами пикселей. [1] Типичный пример: все версии Microsoft Windows до Windows 95 (например, Windows 3.1 ) предоставляли только этот тип встроенного растеризатора. [2]
Более сложный подход — использовать стандартные методы сглаживания компьютерной графики. Это можно рассматривать как определение для каждого пикселя по краям персонажа того, какую часть этого пикселя занимает персонаж, и рисование этого пикселя с определенной степенью непрозрачности. Например, при рисовании черной буквы (000000) на белом (FFFFFF) фоне, если пиксель в идеале должен быть заполнен наполовину (возможно, диагональной линией от угла к углу), он рисуется на 50% серым (BCBCBC). Слишком простое применение этой процедуры может привести к размытию глифов. Например, если буква содержит вертикальную линию, которая должна быть шириной в один пиксель, но находится точно между двумя пикселями, она отображается на экране как серая линия шириной в два пикселя. Эта размытость меняет ясность на точность. Однако современные системы часто заставляют линии попадать в целочисленные пиксельные координаты, что делает глифы более четкими, но также делает линии немного шире или тоньше, чем они выглядели бы на распечатанном листе бумаги.
Большинство компьютерных дисплеев имеют пиксели, состоящие из нескольких субпикселей (обычно по одному для красного, зеленого и синего цветов, которые объединяются для создания полного диапазона цветов). В некоторых случаях, особенно с плоскими дисплеями, это можно использовать путем рендеринга с субпиксельным разрешением, а не с использованием целых пикселей, что может увеличить эффективное разрешение экрана. Это обычно известно как субпиксельный рендеринг . Одной из запатентованных реализаций субпиксельного рендеринга является ClearType от Microsoft .
Используемые в настоящее время системы растеризации
[ редактировать ]В современных операционных системах растеризация обычно обеспечивается общей библиотекой, общей для многих приложений. Такая общая библиотека может быть встроена в операционную систему или среду рабочего стола или добавлена позже. В принципе, каждое приложение может использовать другую библиотеку растеризации шрифтов, но на практике большинство систем пытаются стандартизировать одну библиотеку.
Microsoft Windows поддерживает субпиксельный рендеринг начиная с Windows XP . С другой стороны, стандартный растеризатор Microsoft без ClearType является примером растеризатора, который отдает приоритет шрифта ясности дизайнера ; заставляя текст занимать целые координатные позиции, следуя замыслу дизайнера шрифта в виде подсказок и даже не сглаживая определенные шрифты определенных размеров, следуя замыслу дизайнера шрифта в таблице вздохов, его становится легче читать на экране, но при печати может выглядеть несколько иначе. Ситуация изменилась с появлением Direct2D/DirectWrite в обновлении платформы Windows 7 и Windows Vista, позволяющем субпиксельное позиционирование текста до размеров 1/16 пикселя. [3]
Mac OS X в Quartz отличается использованием субпиксельного позиционирования; он не помещает глифы в точные местоположения пикселей, а использует различные методы сглаживания, [4] включая субпиксельный рендеринг , чтобы расположить символы и линии так, чтобы они отображались дальше от шрифта намека дизайнера и ближе к исходному контуру. В результате экранное изображение очень похоже на печатный результат, но иногда его трудно читать при меньшем кегле. Начиная с macOS Mojave, модуль рендеринга Quartz удалил субпиксельный рендеринг, полагаясь вместо этого исключительно на сглаживание оттенков серого. Это изменение приемлемо для экранов HiDPI «retina», но затрудняет чтение текста на внешних мониторах. [5]
Большинство других систем используют библиотеку FreeType , которая в зависимости от настроек может находиться где-то между реализациями Microsoft и Apple; он поддерживает хинтинг и сглаживание, а также дополнительно выполняет субпиксельный рендеринг и позиционирование. FreeType также предлагает некоторые функции, отсутствующие ни в одной из реализаций, такие как цветобалансированный субпиксельный рендеринг и гамма-коррекция. [6]
Приложения также могут предлагать собственные решения для рендеринга шрифтов. Графические платформы, такие как Skia Graphics Engine (используется Google Chrome ), иногда используют собственный механизм рендеринга шрифтов. Видеоиграм и другим 3D-приложениям также могут потребоваться более быстрые средства рендеринга на базе графического процессора, такие как различные средства рендеринга на основе SDF и «Slug». [7]
Ссылки
[ редактировать ]- ^ Jump up to: а б Грег Хичкок (с введением Стивена Синофски ) « Инженерные изменения в ClearType в Windows 7 », блоги MSDN, 23 июня 2009 г.
- ^ Jump up to: а б О рендеринге текста в Windows Internet Explorer 9
- ^ Библиотека MSDN: Разработка .NET: WPF: Обзор ClearType
- ^ «[ft] Fwd: Re: Воздействие растеризации текста» . lists.gnu.org .
- ^ «MacOS Mojave удаляет субпиксельное сглаживание, что делает дисплеи без сетчатки размытыми | Hacker News» . news.ycombinator.com .
- ^ «О небольших намеках, правильной отрисовке текста, затемнении стебля и ЖК-фильтрах» . сайт freetype.org .
- ^ «Библиотека рендеринга шрифтов Slug» . sluglibrary.com .
Внешние ссылки
[ редактировать ]- Возвращение к растровой трагедии при низком разрешении - онлайн-книга Бита Стамма о растеризации с упором на ClearType.
- CS 354 Компьютерная графика — рендеринг путей; Техасский университет в Остине
- Экспонирование растеризации текста
- Проблемы типографского сглаживания