GetGlyphOutlineW 함수(wingdi.h)

GetGlyphOutline 함수는 지정된 디바이스 컨텍스트로 선택된 TrueType 글꼴의 문자에 대한 윤곽선 또는 비트맵을 검색합니다.

구문

DWORD GetGlyphOutlineW(
  [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

함수가 검색하는 데이터의 형식입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
GGO_BEZIER
함수는 곡선 데이터를 입방형 베지어 스플라인으로 검색합니다(사분면 스플라인 형식이 아님).
GGO_BITMAP
함수는 문자 모양 비트맵을 검색합니다. 메모리 할당에 대한 자세한 내용은 다음 설명 섹션을 참조하세요.
GGO_GLYPH_INDEX
uChar 매개 변수가 문자 코드가 아닌 TrueType 문자 모양 인덱스임을 나타냅니다. 문자 모양 인덱싱에 대한 추가 설명은 ExtTextOut 함수를 참조하세요.
GGO_GRAY2_BITMAP
함수는 5개 수준의 회색이 포함된 문자 모양 비트맵을 검색합니다.
GGO_GRAY4_BITMAP
함수는 17개 수준의 회색을 포함하는 문자 모양 비트맵을 검색합니다.
GGO_GRAY8_BITMAP
함수는 65개 수준의 회색을 포함하는 문자 모양 비트맵을 검색합니다.
GGO_METRICS
함수는 lpgm으로 지정된 GLYPHMETRICS 구조만 검색합니다. lpvBuffer는 무시됩니다. 이 값은 실패 시 함수의 반환 값의 의미에 영향을 줍니다. 반환 값 섹션을 참조하세요.
GGO_NATIVE
함수는 래스터라이저의 네이티브 형식으로 곡선 데이터 요소를 검색하고 글꼴의 디자인 단위를 사용합니다.
GGO_UNHINTED
함수는 힌트되지 않은 윤곽선만 반환합니다. 이 플래그는 GGO_BEZIER 및 GGO_NATIVE 함께 작동합니다.
 

GGO_GRAYn_BITMAP 값의 경우 함수는 n^2+1(n 제곱 더하기 1) 수준의 회색을 포함하는 문자 모양 비트맵을 검색합니다.

[out] lpgm

문자 셀에 문자 모양 배치를 설명하는 GLYPHMETRICS 구조체에 대한 포인터입니다.

[in] cjBuffer

함수가 개요 문자에 대한 정보를 복사하는 버퍼(*lpvBuffer)의 크기(바이트)입니다. 이 값이 0이면 함수는 버퍼의 필요한 크기를 반환합니다.

[out] pvBuffer

개요 문자에 대한 정보를 수신하는 버퍼에 대한 포인터입니다. 이 값이 NULL이면 함수는 버퍼의 필요한 크기를 반환합니다.

[in] lpmat2

문자의 변환 행렬을 지정하는 MAT2 구조체에 대한 포인터입니다.

반환 값

GGO_BITMAP, GGO_GRAY2_BITMAP, GGO_GRAY4_BITMAP, GGO_GRAY8_BITMAP 또는 GGO_NATIVE 지정되고 함수가 성공하면 반환 값이 0보다 큽니다. 그렇지 않으면 반환 값이 GDI_ERROR. 이러한 플래그 중 하나가 지정되고 버퍼 크기 또는 주소가 0이면 반환 값은 필요한 버퍼 크기를 바이트 단위로 지정합니다.

GGO_METRICS 지정되고 함수가 실패하면 반환 값이 GDI_ERROR.

설명

GetGlyphOutline 함수에서 반환되는 문자 모양 윤곽선은 그리드 맞춤 문자 모양을 위한 것입니다. (그리드 맞춤 문자 모양은 비트맵 이미지가 문자 모양의 원래 디자인과 최대한 밀접하게 일치하도록 수정된 문자 모양입니다.) 애플리케이션에 수정되지 않은 문자 모양 윤곽선이 필요한 경우 글꼴의 em 단위와 크기가 같은 글꼴의 문자에 대한 문자 모양 윤곽선을 요청할 수 있습니다. 글꼴의 em 단위 값은 OUTLINETEXTMETRIC 구조의 otmEMSquare 멤버에 저장됩니다.

GGO_BITMAP 지정될 때 GetGlyphOutline 에서 반환되는 문자 모양 비트맵은 DWORD 정렬 행 지향 단색 비트맵입니다. GGO_GRAY2_BITMAP 지정하면 반환되는 비트맵은 값이 0에서 4까지인 DWORD 정렬 행 지향 바이트 배열입니다. GGO_GRAY4_BITMAP 지정하면 반환되는 비트맵은 값이 0에서 16까지인 DWORD 정렬 행 지향 바이트 배열입니다. GGO_GRAY8_BITMAP 지정하면 반환되는 비트맵은 값이 0에서 64까지인 DWORD 정렬 행 지향 바이트 배열입니다.

GGO_NATIVE 지정될 때 GetGlyphOutline 에서 반환되는 네이티브 버퍼는 문자 모양 윤곽선입니다. 문자 모양 윤곽선은 TTPOLYGONHEADER 구조체에 의해 정의된 하나 이상의 윤곽선과 하나 이상의 곡선으로 반환됩니다. 윤곽선의 각 곡선은 TTPOLYCURVE 구조체와 여러 POINTFX 데이터 요소로 정의됩니다. POINTFX 포인트는 상대 이동이 아닌 절대 위치입니다. 컨투어의 시작점은 TTPOLYGONHEADER 구조체의 pfxStart 멤버에 의해 지정됩니다. 각 곡선의 시작점은 이전 곡선의 마지막 지점 또는 윤곽선의 시작점입니다. 곡선의 데이터 포인트 수는 TTPOLYCURVE 구조체의 cpfx 멤버에 저장됩니다. 버퍼의 각 윤곽선 크기(바이트)는 TTPOLYGONHEADER 구조체의 cb 멤버에 저장됩니다. 추가 곡선 정의는 앞의 곡선에 따라 버퍼에 압축되며, 이전 윤곽선에 따라 추가 윤곽선이 버퍼에 압축됩니다. 버퍼에는 GetGlyphOutline에서 반환하는 버퍼 내에 맞는 만큼의 윤곽선이 포함되어 있습니다.

GLYPHMETRICS 구조체는 문자 셀의 너비와 문자 셀 내 문자 모양 위치를 지정합니다. 문자 셀의 원점은 글꼴의 기준선에 있는 셀의 왼쪽에 있습니다. 문자 모양 원점의 위치는 문자 셀 원점과 상대적입니다. 글꼴에 대한 문자 셀, 기준선 및 기타 메트릭의 높이는 OUTLINETEXTMETRIC 구조에 의해 제공됩니다.

애플리케이션은 lpMatrix 매개 변수에서 2x2 변환 행렬을 지정하여 비트맵 또는 네이티브 형식으로 검색된 문자를 변경할 수 있습니다. 예를 들어 문자 모양은 전단, 회전, 크기 조정 또는 행렬 곱셈을 사용하여 세 가지 조합으로 수정할 수 있습니다.

문자 모양 개요에 대한 추가 정보는 TrueType 및 OpenType 기술 사양에 있습니다.

참고

wingdi.h 헤더는 GETGlyphOutline을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wingdi.h(Windows.h 포함)
라이브러리 Gdi32.lib
DLL Gdi32.dll

추가 정보

ExtTextOut

FORM_INFO_1

글꼴 및 텍스트 함수

글꼴 및 텍스트 개요

문자 모양

GetOutlineTextMetrics

MAT2

OUTLINETEXTMETRIC

지점

POINTFX

TTPOLYCURVE

TTPOLYGONHEADER