Funzione GetGlyphOutlineA (wingdi.h)
La funzione GetGlyphOutline recupera la struttura o la bitmap per un carattere nel tipo di carattere TrueType selezionato nel contesto di dispositivo specificato.
Sintassi
DWORD GetGlyphOutlineA(
[in] HDC hdc,
[in] UINT uChar,
[in] UINT fuFormat,
[out] LPGLYPHMETRICS lpgm,
[in] DWORD cjBuffer,
[out] LPVOID pvBuffer,
[in] const MAT2 *lpmat2
);
Parametri
[in] hdc
Handle per il contesto del dispositivo.
[in] uChar
Carattere per il quale devono essere restituiti i dati.
[in] fuFormat
Formato dei dati recuperati dalla funzione. Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
|
La funzione recupera i dati della curva come spline di Bézier cubica (non in formato spline quadratico). |
|
La funzione recupera la bitmap del glifo. Per informazioni sull'allocazione di memoria, vedere la sezione Osservazioni seguente. |
|
Indica che il parametro uChar è un indice glifo TrueType anziché un codice carattere. Per altre osservazioni sull'indicizzazione dei glifi, vedere la funzione ExtTextOut . |
|
La funzione recupera una bitmap del glifo che contiene cinque livelli di grigio. |
|
La funzione recupera una bitmap del glifo che contiene 17 livelli di grigio. |
|
La funzione recupera una bitmap del glifo che contiene 65 livelli di grigio. |
|
La funzione recupera solo la struttura GLYPHMETRICS specificata da lpgm. LpvBuffer viene ignorato. Questo valore influisce sul significato del valore restituito della funzione in caso di errore; vedere la sezione Valori restituiti. |
|
La funzione recupera i punti dati della curva nel formato nativo del rasterizzatore e usa le unità di progettazione del tipo di carattere. |
|
La funzione restituisce solo contorni non evidenziati. Questo flag funziona solo in combinazione con GGO_BEZIER e GGO_NATIVE. |
Si noti che, per i valori di GGO_GRAYn_BITMAP, la funzione recupera una bitmap del glifo contenente n^2+1 (n quadrati più uno) livelli di grigio.
[out] lpgm
Puntatore alla struttura GLYPHMETRICS che descrive la posizione del glifo nella cella di caratteri.
[in] cjBuffer
Dimensioni, in byte, del buffer (*lpvBuffer) in cui la funzione deve copiare informazioni sul carattere di struttura. Se questo valore è zero, la funzione restituisce le dimensioni necessarie del buffer.
[out] pvBuffer
Puntatore al buffer che riceve informazioni sul carattere di struttura. Se questo valore è NULL, la funzione restituisce le dimensioni necessarie del buffer.
[in] lpmat2
Puntatore a una struttura MAT2 che specifica una matrice di trasformazione per il carattere.
Valore restituito
Se viene specificato GGO_BITMAP, GGO_GRAY2_BITMAP, GGO_GRAY4_BITMAP, GGO_GRAY8_BITMAP o GGO_NATIVE e la funzione ha esito positivo, il valore restituito è maggiore di zero; in caso contrario, il valore restituito è GDI_ERROR. Se viene specificato uno di questi flag e la dimensione del buffer o l'indirizzo è zero, il valore restituito specifica le dimensioni del buffer necessarie, in byte.
Se viene specificato GGO_METRICS e la funzione ha esito negativo, il valore restituito viene GDI_ERROR.
Commenti
Il contorno del glifo restituito dalla funzione GetGlyphOutline è per un glifo a griglia. Un glifo a griglia è un glifo modificato in modo che la sua immagine bitmap sia conforme al più possibile alla progettazione originale del glifo. Se un'applicazione necessita di una struttura del glifo non modificata, può richiedere il contorno del glifo per un carattere in un tipo di carattere la cui dimensione è uguale all'unità em del tipo di carattere. Il valore dell'unità em di un tipo di carattere viene archiviato nel membro otmEMSquare della struttura OUTLINETEXTMETRIC .
La bitmap del glifo restituita da GetGlyphOutline quando viene specificato GGO_BITMAP è una bitmap monocromatica allineata a DWORD, orientata alle righe. Quando si specifica GGO_GRAY2_BITMAP, la bitmap restituita è una matrice di byte allineata a DWORD e orientata alle righe i cui valori sono compresi tra 0 e 4. Quando viene specificato GGO_GRAY4_BITMAP, la bitmap restituita è una matrice DWORD allineata alle righe di byte i cui valori sono compresi tra 0 e 16. Quando si specifica GGO_GRAY8_BITMAP, la bitmap restituita è una matrice di byte orientata alle righe allineata a DWORD i cui valori sono compresi tra 0 e 64.
Il buffer nativo restituito da GetGlyphOutline quando viene specificato GGO_NATIVE è una struttura del glifo. Un contorno del glifo viene restituito come una serie di uno o più contorni definiti da una struttura TTPOLYGONHEADER seguita da una o più curve. Ogni curva nel contorno è definita da una struttura TTPOLYCURVE seguita da un numero di punti dati POINTFX . I punti POINTFX sono posizioni assolute, non spostamenti relativi. Il punto iniziale di un contorno viene assegnato dal membro pfxStart della struttura TTPOLYGONHEADER . Il punto iniziale di ogni curva è l'ultimo punto della curva precedente o il punto iniziale del contorno. Il conteggio dei punti dati in una curva viene archiviato nel membro cpfx della struttura TTPOLYCURVE . Le dimensioni di ogni contorno nel buffer, in byte, vengono archiviate nel membro cb della struttura TTPOLYGONHEADER . Le definizioni di curva aggiuntive vengono compresse nel buffer seguendo le curve precedenti e i contorni aggiuntivi vengono compressi nel buffer seguendo i contorni precedenti. Il buffer contiene il numero di contorni che rientrano nel buffer restituito da GetGlyphOutline.
La struttura GLYPHMETRICS specifica la larghezza della cella di caratteri e la posizione di un glifo all'interno della cella di caratteri. L'origine della cella di caratteri si trova sul lato sinistro della cella in corrispondenza della linea di base del tipo di carattere. La posizione dell'origine del glifo è relativa all'origine della cella di caratteri. L'altezza di una cella di caratteri, la linea di base e altre metriche globali per il tipo di carattere vengono date dalla struttura OUTLINETEXTMETRIC .
Un'applicazione può modificare i caratteri recuperati in formato bitmap o nativo specificando una matrice di trasformazione 2 by-2 nel parametro lpMatrix . Ad esempio, il glifo può essere modificato da un'enumere, dalla rotazione, dal ridimensionamento o da qualsiasi combinazione dei tre usando la moltiplicazione della matrice.
Altre informazioni sui contorni di un glifo sono disponibili nelle specifiche tecniche TrueType e OpenType.
Nota
L'intestazione wingdi.h definisce GetGlyphOutline come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | wingdi.h (include Windows.h) |
Libreria | Gdi32.lib |
DLL | Gdi32.dll |
Vedi anche
Funzioni per tipi di carattere e testo