Compartir a través de


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 siguientes valores.

Valor Significado
GGO_BEZIER
La función recupera los datos de la 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 caracteres. 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. Se omite el lpvBuffer. 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 GLYPHMETRICS estructura 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 del búfer o la dirección 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.

Observaciones

El contorno del glifo devuelto por la función GetGlyphOutline es para un glifo ajustado a la cuadrícula. (Un glifo ajustado por 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 de .

El mapa de bits de glifo devuelto por GetGlyphOutline cuando se especifica GGO_BITMAP es un mapa de bits monocromo alineado con DWORD, orientado a filas. 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 y orientada a filas de bytes cuyos valores van de 0 a 64.

El búfer nativo devuelto por GetGlyphOutline cuando se especifica GGO_NATIVE es un contorno de glifo. Un contorno de glifo se devuelve como una serie de uno o varios contornos definidos por un TTPOLYGONHEADER estructura seguida de una o varias curvas. Cada curva del contorno se define mediante una estructura de TTPOLYCURVE seguida de una serie de puntos de datos POINTFX. puntos de POINTFX son posiciones absolutas, no movimientos relativos. El punto de partida de un contorno lo da el miembro pfxStart de la estructura TTPOLYGONHEADER de . 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 estructura de TTPOLYCURVE. El tamaño de cada contorno en el búfer, en bytes, se almacena en el miembro cb de TTPOLYGONHEADER estructura. 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 GLYPHMETRICS estructura 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 altura de una celda de caracteres, la línea base y otras métricas globales a la fuente se proporcionan mediante la estructura OUTLINETEXTMETRIC.

Una aplicación puede modificar los caracteres recuperados en formato de mapa de bits o 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 descifrado, rotación, escalado o cualquier combinación de las tres mediante la multiplicación de matriz.

La información adicional sobre los contornos de glifos se encuentra en TrueType y en las especificaciones técnicas de 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de wingdi.h (incluya Windows.h)
biblioteca de Gdi32.lib
DLL de Gdi32.dll

Consulte también

extTextOut

FORM_INFO_1

funciones de fuente y texto de

de información general de fuentes y texto de

GLYPHMETRICS

GetOutlineTextMetrics

MAT2

OUTLINETEXTMETRIC

POINT de

POINTFX

TTPOLYCURVE

TTPOLYGONHEADER