Растрові, векторні і контурні шрифти

растрові шрифти

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







Зображення символів шрифту (як і будь-яка інша) на екрані дисплея є растровим зображенням, тобто складається з пофарбованих в Різні кольори точок, або пікселів (pixels). B разі тексту таких кольорів тільки два - колір символу і колір фону. Якщо умовно позначити точку, забарвлену в колір символу, одиницею, а в колір фону - нулем, будь зображуваний на екрані символ можна представити у вигляді прямокутної таблички з нулів і одиниць - бітової карти (bitmap), o яку вже йшлося під час обговорення растрирования. Природно, що кількість елементів в таблиці однозначно

19 B русифікованих версіях DOS це робиться зазначенням номера використовуваної кодової сторінки. B нелокалізованих версіях використовуються спеціальні резидентні програми- «русифікатори», що підтримують одну або кілька кодових таблиць.

Растрові, векторні і контурні шрифти

пов'язане з розміром символу на екрані - для малювання символу висотою 12 пунктів (1 pt = 1/72 дюйма і точно відповідає розміру пікселя для більшості типів моніторів) потрібно мати Bitmap висотою 12 рядків, для символу в 8 pt - в 8 рядків. Таблиця, що містить всі 256 бітових карт символів для деякого накреслення і деякого розміру, називається bitmap font (bitmap-шрифт). Ha Малюнок 5.1 показано, як виглядає літера «Q» bitmap-шрифта при великому збільшенні (тонкі білі лінії позначають кордону пікселів).

Малюнок 5.1 Літера bitmap-шрифта

Bitmap-шрифт є найбільш зручним для відображення на екрані з точки зору швидкості промальовування і витрат ресурсів комп'ютера на обробку. Однак розміри символів на екрані можуть змінюватися - отже, для однієї гарнітури необхідні bitmapшріфти декількох розмірів. Оскільки запам'ятовувати шрифти для всіх можливих розмірів занадто марнотратно з точки зору витрачається для їх зберігання пам'яті (як дискової, так і оперативної), творці розділу підтримки шрифтів в операційних системах пішли на наступний компроміс: для найбільш ходових кеглів (розмірів) створюються окремі bitmap-шрифти , для проміжних розмірів бітова карта кожного символу будується безпосередньо перед відображенням на підставі bitmap з найближчого за розміром шрифту тієї ж гарнітури.

Незважаючи на відчутні втрати часу при перерахунку бітових карт «на інший розмір» і не дуже високу якість відображення проміжних розмірів символів на екрані, для виведення тільки на екран і тільки прямих символів bitmap-шрифтів було б цілком

досить. Проблеми виникають, коли текст потрібно повернути або вивести на «тверду копію», або те й інше разом. Якщо для роботи з екраном, що має дозвіл 72 dpi (точки на дюйм) при відображенні символу висотою 16 пунктів досить запам'ятати бітову карту порядку 256 біт (16 точок по вертикалі, 16 по горизонталі), то для відображення символу того ж розміру на папері при вирішенні 1200 dpi потрібно матриця з 267x267 елементів, або 8911 байт. Помножте цю величину на кількість символів в шрифті (256), на кількість використовуваних вами гарнітур і врахуйте необхідну кількість bitmap для різних розмірів символів, а потім прикиньте, чи поміститься необхідний обсяг інформації на ваш жорсткий диск. Незалежно від отриманого результату, зберігання (і передача) образів символів у вигляді бітових карт, придатних для друку з високою роздільною здатністю, виявляється занадто неефективним способом кодування шрифтів.







векторні шрифти

Можливим вирішенням проблеми масштабування шрифту на високі дозволу є використання векторних шрифтів. Ці шрифти є природним способом визначення накреслень символів для пристроїв типу пір'яних або струменевих графопостроителей (плотерів), здатних безпосередньо відтворювати на носії прямі або криві лінії. B векторних шрифтах кожен символ представлений у вигляді сукупності геометричних примітивів - зазвичай відрізків прямих і дуг окружності, заданих своїми координатами щодо «точки прив'язки» (origin point) символу. Приклад векторного символу наведено на Малюнок 5.2.

Малюнок 5.2 Літера векторного шрифту

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

Растрові, векторні і контурні шрифти

програмних продукти працювали з векторними шрифтами і на дисплеї - можна згадати графічні засоби всіх компіляторів фірми Borland для Dos. Однак для промальовування шрифтів з якістю, придатним для поліграфії, в векторних шрифтах знадобилося б надто велика кількість елементів, що утворюють контуру букв зі змінною товщиною - ці контуру довелося б «набирати» з безлічі тонких ліній. B даний час векторні шрифти використовуються тільки в деяких програмах, пов'язаних з підготовкою креслень.

контурні шрифти

Більш ефективним вирішенням проблеми є використання так званих «outline» (контурних) шрифтів. Іноді їх також називають векторними - це цілком допустимо, якщо тільки виключена плутанина з тими шрифтами, про які йшла мова в попередньому абзаці. Замість запам'ятовування бітових карт, мінливих зі зміною кегля шрифту, запам'ятовуються тільки контури символу (Малюнок 5.3

Малюнок 5.3 Літера TrueType-

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

Растрові, векторні і контурні шрифти

Для запам'ятовування кривих, які окреслюють межі символів, використовують розбиття кривої (або ламаного) лінії на дільниці і апроксимацію одержані фрагментів кривих полиномами другого або третього ступеня. Ha малюнках межі ділянок, на які розбиті контуру букв, показані жирними точками.

Шрифти TrueType. B залежності від ступеня аппроксимирующего полінома розрізняють два типи outline-шрифтів. Так звані TrueType-шрифти (вони можуть також називатися шрифтами типу 2), спочатку запропоновані фірмою Apple для використання в якості масштабованих екранних шрифтів в комп'ютерах Macintosh в другій половині вісімдесятих років, використовують для формування контуру символів криві другого порядку. Кожна ділянка контуру характеризується, або задається двома точками (кордонами ділянки) і напрямком лінії на кожній з меж. Часто для завдання напрямків використовується третя точка, що лежить на перетині дотичних до кривої на її кінцях (Малюнок 5.5).

Малюнок 5.5 Елементарна крива в шрифтах TrueType (парабола другого порядку)

Растрові, векторні і контурні шрифти







Схожі статті