Compartilhar via


Função GetGlyphOutlineA (wingdi.h)

A função GetGlyphOutline recupera a estrutura de tópicos ou bitmap de um caractere na fonte TrueType selecionada no contexto do dispositivo especificado.

Sintaxe

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

Um identificador para o contexto do dispositivo.

[in] uChar

O caractere para o qual os dados devem ser retornados.

[in] fuFormat

O formato dos dados que a função recupera. Esse parâmetro pode ser um dos valores a seguir.

Valor Significado
GGO_BEZIER
A função recupera os dados de curva como um spline Bézier cúbico (não em formato de spline quadrático).
GGO_BITMAP
A função recupera o bitmap de glifo. Para obter informações sobre alocação de memória, consulte a seção Comentários a seguir.
GGO_GLYPH_INDEX
Indica que o parâmetro uChar é um Índice de Glifo TrueType em vez de um código de caractere. Consulte a função ExtTextOut para obter comentários adicionais sobre indexação de glifo.
GGO_GRAY2_BITMAP
A função recupera um bitmap de glifo que contém cinco níveis de cinza.
GGO_GRAY4_BITMAP
A função recupera um bitmap de glifo que contém 17 níveis de cinza.
GGO_GRAY8_BITMAP
A função recupera um bitmap de glifo que contém 65 níveis de cinza.
GGO_METRICS
A função recupera apenas a estrutura de GLYPHMETRICS especificada por de glplás. O lpvBuffer é ignorado. Esse valor afeta o significado do valor retornado da função após a falha; consulte a seção Valores retornados.
GGO_NATIVE
A função recupera os pontos de dados de curva no formato nativo do rasterizador e usa as unidades de design da fonte.
GGO_UNHINTED
A função retorna apenas estruturas de tópicos não ofuscadas. Esse sinalizador só funciona em conjunto com GGO_BEZIER e GGO_NATIVE.
 

Observe que, para os valores de GGO_GRAYn_BITMAP, a função recupera um bitmap de glifo que contém n^2+1 (n quadrado mais um) níveis de cinza.

[out] lpgm

Um ponteiro para a estrutura de GLIFOMÉTRICA que descreve o posicionamento do glifo na célula de caracteres.

[in] cjBuffer

O tamanho, em bytes, do buffer (*lpvBuffer) em que a função é copiar informações sobre o caractere de estrutura de tópicos. Se esse valor for zero, a função retornará o tamanho necessário do buffer.

[out] pvBuffer

Um ponteiro para o buffer que recebe informações sobre o caractere de estrutura de tópicos. Se esse valor for NULL, a função retornará o tamanho necessário do buffer.

[in] lpmat2

Um ponteiro para uma estrutura MAT2 especificando uma matriz de transformação para o caractere.

Valor de retorno

Se GGO_BITMAP, GGO_GRAY2_BITMAP, GGO_GRAY4_BITMAP, GGO_GRAY8_BITMAP ou GGO_NATIVE for especificado e a função for bem-sucedida, o valor retornado será maior que zero; caso contrário, o valor retornado é GDI_ERROR. Se um desses sinalizadores for especificado e o tamanho ou endereço do buffer for zero, o valor retornado especificará o tamanho do buffer necessário, em bytes.

Se GGO_METRICS for especificado e a função falhar, o valor retornado será GDI_ERROR.

Observações

A estrutura de tópicos de glifo retornada pela função GetGlyphOutline é para um glifo equipado com grade. (Um glifo equipado com grade é um glifo que foi modificado para que sua imagem bitmapped esteja em conformidade o mais próximo possível do design original do glifo.) Se um aplicativo precisar de uma estrutura de tópicos de glifo não modificada, ele poderá solicitar a estrutura de tópicos de glifo para um caractere em uma fonte cujo tamanho seja igual à unidade em da fonte. O valor da unidade em de uma fonte é armazenado no membro otmEMSquare da estrutura de OUTLINETEXTMETRIC.

O bitmap de glifo retornado por GetGlyphOutline quando GGO_BITMAP é especificado é um bitmap monocromático alinhado a DWORD, orientado a linhas. Quando GGO_GRAY2_BITMAP é especificado, o bitmap retornado é uma matriz de bytes alinhada a linhas alinhada a DWORD cujos valores variam de 0 a 4. Quando GGO_GRAY4_BITMAP é especificado, o bitmap retornado é uma matriz de bytes alinhada a linhas alinhada a DWORD cujos valores variam de 0 a 16. Quando GGO_GRAY8_BITMAP é especificado, o bitmap retornado é uma matriz de bytes alinhada a linhas alinhada a DWORD cujos valores variam de 0 a 64.

O buffer nativo retornado por GetGlyphOutline quando GGO_NATIVE é especificado é uma estrutura de tópicos de glifo. Um contorno de glifo é retornado como uma série de um ou mais contornos definidos por uma estrutura TTPOLYGONHEADER seguida por uma ou mais curvas. Cada curva no contorno é definida por uma estrutura TTPOLYCURVE seguida por uma série de pontos de dados POINTFX . pontos POINTFX são posições absolutas, não movimentos relativos. O ponto de partida de um contorno é fornecido pelo membro pfxStart da estrutura TTPOLYGONHEADER. O ponto inicial de cada curva é o último ponto da curva anterior ou o ponto inicial do contorno. A contagem de pontos de dados em uma curva é armazenada no cpfx membro da estrutura TTPOLYCURVE. O tamanho de cada contorno no buffer, em bytes, é armazenado no membro cb de estrutura TTPOLYGONHEADER. Definições de curva adicionais são empacotadas no buffer após as curvas anteriores e contornos adicionais são empacotados no buffer após os contornos anteriores. O buffer contém quantos contornos forem ajustados dentro do buffer retornado por GetGlyphOutline .

A estrutura GLIFOMÉTRICA especifica a largura da célula de caracteres e o local de um glifo dentro da célula de caractere. A origem da célula de caractere está localizada no lado esquerdo da célula na linha de base da fonte. O local da origem do glifo é relativo à origem da célula de caractere. A altura de uma célula de caractere, a linha de base e outras métricas globais para a fonte são fornecidas pela estrutura de OUTLINETEXTMETRIC.

Um aplicativo pode alterar os caracteres recuperados em formato bitmap ou nativo especificando uma matriz de transformação 2 por 2 no parâmetro lpMatrix. Por exemplo, o glifo pode ser modificado por tesoura, rotação, dimensionamento ou qualquer combinação dos três usando multiplicação de matriz.

Informações adicionais sobre estruturas de tópicos de glifo estão localizadas nas especificações técnicas TrueType e OpenType.

Nota

O cabeçalho wingdi.h define GetGlyphOutline como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho wingdi.h (inclua Windows.h)
biblioteca Gdi32.lib
de DLL Gdi32.dll

Consulte também

ExtTextOut

FORM_INFO_1

Funções de fonte e texto

fontes e visão geral de texto

GLIFOMÉTRICO

GetOutlineTextMetrics

MAT2

OUTLINETEXTMETRIC

POINT

POINTFX

TTPOLYCURVE

TTPOLYGONHEADER