Главная » Win32 API » Метрики физического шрифта

0

Отсчет всех размеров выполняется от базовой линии шрифта. На ней находится нижняя граница глифов большинства прописных букв. Высота шрифта tmHeight складывается из надстрочного интервала и подстрочного интервала. Надстрочный интервал tmAscent — это расстояние от базовой линии до верхней границы ячейки символа. Под­строчный интервал tmDescent — это расстояние от базовой линии до нижней границы ячейки символа. Внутренний зазор tmlntemalLeading определяет пространство для размещения диакритических знаков. Внешний зазор tmExtemalLeading определяет минимальный интервал между соседними строками для многострочного текста.

В полиграфии размер шрифта измеряется в пунктах. Один пункт равен 0,01389 дюйма (1/71,99424). В компьютерной верстке пункт ок­ругляется до 1/72 дюйма. Еще один типографский термин «кегль» оп­ределяется как разность высоты шрифта и внутреннего зазора.

При выводе на экран текста учитываются характеристики (метри­ки) шрифта, описываемые структурой TEXTMETRIC, в которой ука­зано 20 параметров. Получить данные из этой структуры можно функ­цией GetTextMetrics(). Возвращаемая функцией информация разме­щается в структуре типа TEXTMETRIC:

typedef struct tagTEXTMETRIC {

LONG tmHeight;       // высота символов

LONG tmAscent; // надстрочный интервал, т.е. часть высоты // букв от базовой линии с учетом таких элементов, как две точки в // букве "Ё"

LONG tmDescent;     // подстрочный интервал, т.е. часть высоты // букв ниже базовой линии

LONG tmlntemalLeading;   // внутренний зазор, т.е. высота таких // выступающих элементов, как две точки в букве "Ё". Может быть // равен нулю

LONG tmExtemalLeading; // межстрочный интервал

LONG tmAveCharWidth; // средняя ширина строчных букв, // равна ширине латинской буквы "х"

LONG tmMaxCharWidth; // максимальная ширина символов

LONG tmWeight; // жирность (насыщенность) шрифта, может // находиться в пределах от 0 до 1000, 400 для нормального // начертания шрифта, или 700 для полужирного начертания

LONG tmOverhang; // величина, на которую увеличивается // ширина символов для наклонных или жирных шрифтов, // получаемых из нормального шрифта. Шрифты TrueType обычно // не используют это поле, так как в них для каждого начертания // создается свой шрифт

LONG tmDigitizedAspectX; // разрешение устройства // отображения по горизонтали

LONG tmDigitizedAspectY; // разрешение устройства

// отображения по вертикали

TCHAR tmFirstChar; // код первого символа, для которого в // шрифте имеется глиф

TCHAR tmLastChar; // код последнего символа, для которого в // шрифте имеется глиф

TCHAR tmDefaultChar; // символ для замены символов, не // имеющих глифа, обычно это контурный прямоугольник

TCHAR tmBreakChar; // символ для вставки в промежутки при //выравнивании текста, обычно это пробел

BYTE tmltalic; // признак наклонности шрифта BYTE tmUnderlined; // признак подчеркнутости шрифта BYTE tmStrackOut; // признак перечеркнутое™ шрифта BYTE tmPitchAndFamily; // Четыре младших бита указывают на шаг и технологию шрифта (моноширинный или пропорциональный -бит 0, векторный шрифт бит 2, шрифт TrueType бит 3, шрифт уст­ройства бит 4). Четыре старших бита указывают семейство шрифта (например, Roman, Modern, Swiss).

BYTE   tmCharSet;   //   код   набора   символов   (ANSICHARSET, SYMBOLCHARSET, RUSSIANCHARSET и т.д.) }TEXTMETRIC;

Источник: Сучкова, Л.И. Win32 API: основы программирования: учебное пособие/ Л.И. Сучкова; АлтГТУ им. ИИ. Ползунова. -Барнаул, АлтГТУ, 2010. 138 с, ил.

По теме:

  • Комментарии