Функция GetGlyphOutlineA (wingdi.h)
Функция GetGlyphOutline извлекает контур или растровое изображение для символа в шрифте TrueType, выбранном в указанном контексте устройства.
Синтаксис
DWORD GetGlyphOutlineA(
[in] HDC hdc,
[in] UINT uChar,
[in] UINT fuFormat,
[out] LPGLYPHMETRICS lpgm,
[in] DWORD cjBuffer,
[out] LPVOID pvBuffer,
[in] const MAT2 *lpmat2
);
Параметры
[in] hdc
Дескриптор контекста устройства.
[in] uChar
Символ, для которого возвращаются данные.
[in] fuFormat
Формат данных, извлекаемых функцией. Этот параметр может быть одним из следующих значений.
Ценность | Значение |
---|---|
|
Функция извлекает данные кривой в виде куба bézier spline (не в формате квадратной строки spline). |
|
Функция извлекает растровое изображение глифа. Сведения о выделении памяти см. в следующем разделе "Примечания". |
|
Указывает, что параметр uChar |
|
Функция извлекает растровое изображение глифа, содержащее пять уровней серого. |
|
Функция извлекает растровое изображение глифа, содержащее 17 уровней серого цвета. |
|
Функция извлекает битовое изображение глифа, содержащее 65 уровней серого. |
|
Функция получает только структуру GLYPHMETRICS, указанную lpgm. lpvBuffer |
|
Функция извлекает точки данных кривой в собственном формате растризатора и использует единицы конструктора шрифта. |
|
Функция возвращает только нехинутые контуры. Этот флаг работает только в сочетании с GGO_BEZIER и GGO_NATIVE. |
Обратите внимание, что для значений GGO_GRAYn_BITMAP функция извлекает битовое изображение глифа, содержащее n^2+1 (n квадрат плюс один) серого.
[out] lpgm
Указатель на структуру GLYPHMETRICS, описывающую размещение глифа в ячейке символа.
[in] cjBuffer
Размер буфера (*lpvBuffer) в байтах, где функция копирует сведения о символе структуры. Если это значение равно нулю, функция возвращает требуемый размер буфера.
[out] pvBuffer
Указатель на буфер, который получает сведения о символе структуры. Если это значение NULL, функция возвращает требуемый размер буфера.
[in] lpmat2
Указатель на структуру MAT2, указывающую матрицу преобразования для символа.
Возвращаемое значение
Если заданы GGO_BITMAP, GGO_GRAY2_BITMAP, GGO_GRAY4_BITMAP, GGO_GRAY8_BITMAP или GGO_NATIVE, а функция выполнена успешно, возвращаемое значение больше нуля; в противном случае возвращаемое значение GDI_ERROR. Если один из этих флагов указан, а размер буфера или адрес равен нулю, возвращаемое значение указывает требуемый размер буфера в байтах.
Если GGO_METRICS указан и функция завершается ошибкой, возвращаемое значение GDI_ERROR.
Замечания
Контур глифа, возвращаемый функцией GetGlyphOutline , предназначен для глифа с сеткой. (Глиф, установленный в сетке, является глифом, который был изменен таким образом, чтобы его битовое изображение соответствовало максимально точно исходному дизайну глифа.) Если приложению требуется неизмененную структуру глифа, он может запросить контур глифа для символа в шрифте, размер которого равен единице em шрифта. Значение единицы em шрифта хранится в элементе otmEMSquare структуры OUTLINETEXT METRIC.
Битовое изображение глифа, возвращаемое GetGlyphOutline при указании GGO_BITMAP является выровненным по строкам, ориентированным на строки, монохромным растровым изображением. При указании GGO_GRAY2_BITMAP возвращается растровое изображение, выравниваемое по строке массив байтов, значения которого варьируются от 0 до 4. При указании GGO_GRAY4_BITMAP возвращается растровое изображение, выравниваемое по строке массив байтов, значения которого варьируются от 0 до 16. При указании GGO_GRAY8_BITMAP возвращается растровое изображение, выравниваемое по строке массив байтов, значения которого варьируются от 0 до 64.
Собственный буфер, возвращаемый GetGlyphOutline при указании GGO_NATIVE является глифом. Контур глифа возвращается в виде ряда одного или нескольких контуров, определенных структурой TTPOLYGONHEADER, за которой следует одна или несколько кривых. Каждая кривая в контуре определяется
Структура GLYPHMETRICS указывает ширину ячейки символа и расположение глифа в ячейке символа. Источник ячейки символа расположен в левой части ячейки в базовой части шрифта. Расположение источника глифа относительно источника символьной ячейки. Высота ячейки символов, базовых показателей и других метрик, глобальных шрифта, предоставляется структурой OUTLINETEXTMETRIC.
Приложение может изменить символы, полученные в растровом рисунке или собственном формате, указав матрицу преобразования 2-от 2 в параметре lpMatrix. Например, глиф можно изменить путем увеличения, поворота, масштабирования или любого сочетания трех с помощью умножения матрицы.
Дополнительные сведения о контурах глифа находятся в спецификациях TrueType и OpenType.
Заметка
Заголовок wingdi.h определяет GetGlyphOutline как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | wingdi.h (включая Windows.h) |
библиотеки |
Gdi32.lib |
DLL | Gdi32.dll |
См. также
шрифтов и текста