Función GetGlyphOutlineA (wingdi.h)

La función GetGlyphOutline recupera el esquema o mapa de bits de un carácter en la fuente TrueType seleccionada en el contexto de dispositivo especificado.

Sintaxis

DWORD GetGlyphOutlineA(
  [in]  HDC            hdc,
  [in]  UINT           uChar,
  [in]  UINT           fuFormat,
  [out] LPGLYPHMETRICS lpgm,
  [in]  DWORD          cjBuffer,
  [out] LPVOID         pvBuffer,
  [in]  const MAT2     *lpmat2
);

Parámetros

[in] hdc

Identificador del contexto del dispositivo.

[in] uChar

Carácter para el que se van a devolver los datos.

[in] fuFormat

Formato de los datos que recupera la función. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
GGO_BEZIER
La función recupera los datos de curva como una spline bézier cúbica (no en formato de spline cuadrático).
GGO_BITMAP
La función recupera el mapa de bits del glifo. Para obtener información sobre la asignación de memoria, vea la siguiente sección Comentarios.
GGO_GLYPH_INDEX
Indica que el parámetro uChar es un índice de glifo TrueType en lugar de un código de carácter. Consulte la función ExtTextOut para obtener comentarios adicionales sobre la indexación de glifos.
GGO_GRAY2_BITMAP
La función recupera un mapa de bits de glifo que contiene cinco niveles de gris.
GGO_GRAY4_BITMAP
La función recupera un mapa de bits de glifo que contiene 17 niveles de gris.
GGO_GRAY8_BITMAP
La función recupera un mapa de bits de glifo que contiene 65 niveles de gris.
GGO_METRICS
La función solo recupera la estructura GLYPHMETRICS especificada por lpgm. LpvBuffer se omite. Este valor afecta al significado del valor devuelto de la función tras un error; consulte la sección Valores devueltos.
GGO_NATIVE
La función recupera los puntos de datos de curva en el formato nativo del rasterizador y usa las unidades de diseño de la fuente.
GGO_UNHINTED
La función solo devuelve esquemas sin definir. Esta marca solo funciona junto con GGO_BEZIER y GGO_NATIVE.
 

Tenga en cuenta que, para los valores de GGO_GRAYn_BITMAP, la función recupera un mapa de bits de glifo que contiene n^2+1 (n cuadrado más uno) niveles de gris.

[out] lpgm

Puntero a la estructura GLYPHMETRICS que describe la colocación del glifo en la celda de caracteres.

[in] cjBuffer

Tamaño, en bytes, del búfer (*lpvBuffer) donde la función es copiar información sobre el carácter de esquema. Si este valor es cero, la función devuelve el tamaño necesario del búfer.

[out] pvBuffer

Puntero al búfer que recibe información sobre el carácter de esquema. Si este valor es NULL, la función devuelve el tamaño necesario del búfer.

[in] lpmat2

Puntero a una estructura MAT2 que especifica una matriz de transformación para el carácter.

Valor devuelto

Si se especifica GGO_BITMAP, GGO_GRAY2_BITMAP, GGO_GRAY4_BITMAP, GGO_GRAY8_BITMAP o GGO_NATIVE y la función se realiza correctamente, el valor devuelto es mayor que cero; de lo contrario, el valor devuelto es GDI_ERROR. Si se especifica una de estas marcas y el tamaño o dirección del búfer es cero, el valor devuelto especifica el tamaño de búfer necesario, en bytes.

Si se especifica GGO_METRICS y se produce un error en la función, se GDI_ERROR el valor devuelto.

Comentarios

El contorno del glifo devuelto por la función GetGlyphOutline es para un glifo ajustado a la cuadrícula. (Un glifo ajustado en cuadrícula es un glifo que se ha modificado para que su imagen bitmapped se ajuste lo más posible al diseño original del glifo). Si una aplicación necesita un contorno de glifo sin modificar, puede solicitar el contorno del glifo para un carácter de una fuente cuyo tamaño sea igual a la unidad em de la fuente. El valor de la unidad em de una fuente se almacena en el miembro otmEMSquare de la estructura OUTLINETEXTMETRIC .

El mapa de bits de glifo devuelto por GetGlyphOutline cuando se especifica GGO_BITMAP es un mapa de bits alineado con DWORD, orientado a filas y monocromo. Cuando se especifica GGO_GRAY2_BITMAP, el mapa de bits devuelto es una matriz alineada con DWORD y orientada a filas de bytes cuyos valores van de 0 a 4. Cuando se especifica GGO_GRAY4_BITMAP, el mapa de bits devuelto es una matriz alineada con DWORD y orientada a filas de bytes cuyos valores van de 0 a 16. Cuando se especifica GGO_GRAY8_BITMAP, el mapa de bits devuelto es una matriz alineada con DWORD de bytes cuyos valores van de 0 a 64.

El búfer nativo devuelto por GetGlyphOutline cuando se especifica GGO_NATIVE es un esquema de glifo. Un contorno de glifo se devuelve como una serie de uno o varios contornos definidos por una estructura TTPOLYGONHEADER seguida de una o varias curvas. Cada curva del contorno se define mediante una estructura TTPOLYCURVE seguida de un número de puntos de datos POINTFX . Los puntos POINTFX son posiciones absolutas, no movimientos relativos. El punto de partida de un contorno lo da el miembro pfxStart de la estructura TTPOLYGONHEADER . El punto inicial de cada curva es el último punto de la curva anterior o el punto inicial del contorno. El recuento de puntos de datos de una curva se almacena en el miembro cpfx de la estructura TTPOLYCURVE . El tamaño de cada contorno del búfer, en bytes, se almacena en el miembro cb de la estructura TTPOLYGONHEADER . Las definiciones de curva adicionales se empaquetan en el búfer siguiendo las curvas anteriores y los contornos adicionales se empaquetan en el búfer siguiendo los contornos anteriores. El búfer contiene tantos contornos como caben en el búfer devuelto por GetGlyphOutline.

La estructura GLYPHMETRICS especifica el ancho de la celda de caracteres y la ubicación de un glifo dentro de la celda de caracteres. El origen de la celda de caracteres se encuentra en el lado izquierdo de la celda en la línea base de la fuente. La ubicación del origen del glifo es relativa al origen de la celda de caracteres. La estructura OUTLINETEXTMETRIC asigna el alto de una celda de caracteres, la línea base y otras métricas globales a la fuente.

Una aplicación puede modificar los caracteres recuperados en el mapa de bits o en formato nativo especificando una matriz de transformación de 2 a 2 en el parámetro lpMatrix . Por ejemplo, el glifo se puede modificar mediante el escalo, la rotación, el escalado o cualquier combinación de las tres mediante la multiplicación de matriz.

La información adicional sobre los contornos de un glifo se encuentra en las especificaciones técnicas TrueType y OpenType.

Nota

El encabezado wingdi.h define GetGlyphOutline como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wingdi.h (incluye Windows.h)
Library Gdi32.lib
Archivo DLL Gdi32.dll

Consulte también

ExtTextOut

FORM_INFO_1

Funciones de fuente y texto

Información general sobre fuentes y texto

GLYPHMETRICS

GetOutlineTextMetrics

MAT2

OUTLINETEXTMETRIC

PUNTO

POINTFX

TTPOLYCURVE

TTPOLYGONHEADER