Як насправді працює візуалізація шрифту?


11

Я розумію, що я нічого не знаю про те, як відображаються шрифти на моєму комп’ютері.

Як я можу спостерігати, візуалізація шрифту, як правило, здійснюється послідовно у всій системі. Наприклад, параметри натяку на шрифт субпікселя, які я налаштовую на своїй панелі управління DE, впливають на текст, який відображається на меж вікна, у моєму браузері, у моєму текстовому редакторі тощо. (Я повинен зауважити, що деякі програми Java демонструють помітну різницю, тому я думаю, що вони використовують інший механізм візуалізації шрифту).

Що я отримую з вищесказаного, це те, що, ймовірно, усі додатки, які потребують візуалізації шрифту, використовують деяку бібліотеку з усією ОС (або DE).

З іншого боку, браузери зазвичай керують власним візуалізацією через механізм візуалізації, який піклується про розміщення різних елементів, включаючи текст, відповідно до певних правил потоку.

Я не впевнений, наскільки ці два факти сумісні. Я б припустив, що браузер повинен буде попросити ОС намалювати гліф у заданій позиції, але як він може керувати потоком тексту, не знаючи попередньо, скільки місця займатиме гліф? Чи існують окремі дзвінки для визначення розмірів гліфів, щоб браузер міг керувати потоком так, ніби символи були маленькими полями, які пізніше заповнюються ОС? (Хоча це не піклується про кернінг). Або ОС відповідає за малювання цілої області тексту, включаючи потік тексту? Чи повертає ОС виведений гліф у вигляді растрового зображення і залишає його програмі, щоб намалювати це на екрані?


1
Коротка відповідь - «так».
Грем Борланд

@GrahamBorland ...: - / На яку з трьох альтернатив я зобразив відповідь "так"?
Андреа

Усі вони, залежно від обставин. Я спробую скласти правильну відповідь.
Грем Борленд

Відповіді:


9

Ви впевнені, що, як правило, програми використовують бібліотеки, надані ОС або інструментарій графічного інтерфейсу, щоб здійснювати візуалізацію шрифту.

Типові шрифтові двигуни дозволяють виконувати ряд режимів роботи. У простому випадку програма може попросити намалювати рядок тексту у певному положенні, а двигун подбає про все (вимірювання, позиціонування, малювання пікселів до дисплея тощо).

Наприклад, для додатків, які потребують більш точного контролю - браузери або текстові процесори - двигун відкриє інтерфейси, де програма може попросити заздалегідь виміряти заданий фрагмент тексту. Потім додаток може використовувати ці знання для того, щоб визначити, скільки тексту може вміститися на рядку, де має бути перерва рядків, скільки місця займе абзац і т. Д. Додаток все ще може попросити двигун зробити фактичну візуалізацію пікселів.

(Можливо, існує сценарій між проміжками, коли двигун може приймати параметр максимальної ширини та, можливо, деякі параметри кернінгу / забивання, і автоматично відтворює стільки тексту, скільки може.)

Нарешті, шрифтовий механізм може дозволити програмі взяти на себе остаточне відображення тексту, повертаючи бітові карти гліфів, попередньо надані певного розміру, дозволяючи додатку розміщувати та складати його на остаточному екрані. Або двигун може навіть запропонувати повернути необроблені дані про гліфи для візуалізації за допомогою деякого векторного набору інструментів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.