Fungsi GetGlyphOutlineA (wingdi.h)

Fungsi GetGlyphOutline mengambil kerangka atau bitmap untuk karakter dalam font TrueType yang dipilih ke dalam konteks perangkat yang ditentukan.

Sintaks

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

Parameter

[in] hdc

Handel ke konteks perangkat.

[in] uChar

Karakter yang datanya akan dikembalikan.

[in] fuFormat

Format data yang diambil fungsi. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
GGO_BEZIER
Fungsi ini mengambil data kurva sebagai spline Bézier kubik (bukan dalam format spline kuadrat).
GGO_BITMAP
Fungsi ini mengambil bitmap glyph. Untuk informasi tentang alokasi memori, lihat bagian Keterangan berikut ini.
GGO_GLYPH_INDEX
Menunjukkan bahwa parameter uChar adalah Indeks TrueType Glyph daripada kode karakter. Lihat fungsi ExtTextOut untuk keterangan tambahan tentang Pengindeksan Glyph.
GGO_GRAY2_BITMAP
Fungsi ini mengambil bitmap glyph yang berisi lima tingkat abu-abu.
GGO_GRAY4_BITMAP
Fungsi ini mengambil bitmap glyph yang berisi 17 tingkat abu-abu.
GGO_GRAY8_BITMAP
Fungsi ini mengambil bitmap glyph yang berisi 65 tingkat abu-abu.
GGO_METRICS
Fungsi ini hanya mengambil struktur GLYPHMETRICS yang ditentukan oleh lpgm. lpvBuffer diabaikan. Nilai ini memengaruhi arti dari nilai pengembalian fungsi saat gagal; lihat bagian Nilai Hasil.
GGO_NATIVE
Fungsi ini mengambil titik data kurva dalam format asli rasterizer dan menggunakan unit desain font.
GGO_UNHINTED
Fungsi ini hanya mengembalikan kerangka yang tidak ditautkan. Bendera ini hanya berfungsi bersama dengan GGO_BEZIER dan GGO_NATIVE.
 

Perhatikan bahwa, untuk nilai GGO_GRAYn_BITMAP, fungsi mengambil bitmap glyph yang berisi tingkat n^2+1 (n kuadrat plus satu) abu-abu.

[out] lpgm

Penunjuk ke struktur GLYPHMETRICS yang menjelaskan penempatan glyph dalam sel karakter.

[in] cjBuffer

Ukuran, dalam byte, dari buffer (*lpvBuffer) di mana fungsinya adalah menyalin informasi tentang karakter kerangka. Jika nilai ini nol, fungsi mengembalikan ukuran buffer yang diperlukan.

[out] pvBuffer

Penunjuk ke buffer yang menerima informasi tentang karakter kerangka. Jika nilai ini NULL, fungsi mengembalikan ukuran buffer yang diperlukan.

[in] lpmat2

Penunjuk ke struktur MAT2 yang menentukan matriks transformasi untuk karakter.

Mengembalikan nilai

Jika GGO_BITMAP, GGO_GRAY2_BITMAP, GGO_GRAY4_BITMAP, GGO_GRAY8_BITMAP, atau GGO_NATIVE ditentukan dan fungsi berhasil, nilai yang dikembalikan lebih besar dari nol; jika tidak, nilai yang dikembalikan adalah GDI_ERROR. Jika salah satu bendera ini ditentukan dan ukuran atau alamat buffer adalah nol, nilai pengembalian menentukan ukuran buffer yang diperlukan, dalam byte.

Jika GGO_METRICS ditentukan dan fungsi gagal, nilai yang dikembalikan adalah GDI_ERROR.

Keterangan

Kerangka glyph yang dikembalikan oleh fungsi GetGlyphOutline adalah untuk glyph yang pas dengan kisi. (Glyph yang dipasang kisi adalah glyph yang telah dimodifikasi sehingga gambar bitmapped-nya sesuai sedekat mungkin dengan desain asli glyph.) Jika aplikasi memerlukan kerangka glyph yang tidak dimodifikasi, aplikasi dapat meminta kerangka glyph untuk karakter dalam font yang ukurannya sama dengan unit em font. Nilai untuk unit em font disimpan dalam anggota otmEMSquare dari struktur OUTLINETEXTMETRIC .

Bitmap glyph yang dikembalikan oleh GetGlyphOutline saat GGO_BITMAP ditentukan adalah bitmap monokrom yang selaras dengan DWORD, berorientasi baris, dan monokrom. Ketika GGO_GRAY2_BITMAP ditentukan, bitmap yang dikembalikan adalah array byte berorientasi baris yang diratakan DWORD yang nilainya berkisar dari 0 hingga 4. Saat GGO_GRAY4_BITMAP ditentukan, bitmap yang dikembalikan adalah array byte berorientasi baris yang diratakan DWORD yang nilainya berkisar antara 0 hingga 16. Saat GGO_GRAY8_BITMAP ditentukan, bitmap yang dikembalikan adalah array byte berorientasi baris yang diratakan DWORD yang nilainya berkisar antara 0 hingga 64.

Buffer asli yang dikembalikan oleh GetGlyphOutline saat GGO_NATIVE ditentukan adalah kerangka glyph. Kerangka glyph dikembalikan sebagai serangkaian satu atau beberapa kontur yang ditentukan oleh struktur TTPOLYGONHEADER diikuti oleh satu atau beberapa kurva. Setiap kurva dalam kontur didefinisikan oleh struktur TTPOLYCURVE diikuti oleh sejumlah titik data POINTFX . Titik POINTFX adalah posisi absolut, bukan gerakan relatif. Titik awal kontur diberikan oleh anggota pfxStart dari struktur TTPOLYGONHEADER . Titik awal setiap kurva adalah titik terakhir dari kurva sebelumnya atau titik awal kontur. Jumlah titik data dalam kurva disimpan dalam anggota cpfx struktur TTPOLYCURVE . Ukuran setiap kontur dalam buffer, dalam byte, disimpan dalam anggota cb struktur TTPOLYGONHEADER . Definisi kurva tambahan dikemas ke dalam buffer setelah kurva sebelumnya dan kontur tambahan dikemas ke dalam buffer setelah kontur sebelumnya. Buffer berisi kontur sebanyak yang pas dalam buffer yang dikembalikan oleh GetGlyphOutline.

Struktur GLYPHMETRICS menentukan lebar sel karakter dan lokasi glyph dalam sel karakter. Asal sel karakter terletak di sisi kiri sel di garis besar font. Lokasi asal glyph relatif terhadap asal sel karakter. Tinggi sel karakter, garis besar, dan metrik lain global ke font diberikan oleh struktur OUTLINETEXTMETRIC .

Aplikasi dapat mengubah karakter yang diambil dalam bitmap atau format asli dengan menentukan matriks transformasi 2-by-2 dalam parameter lpMatrix . Misalnya glyph dapat dimodifikasi dengan geser, rotasi, penskalaan, atau kombinasi apa pun dari ketiganya menggunakan perkalian matriks.

Informasi tambahan tentang kerangka glyph terletak di TrueType dan spesifikasi teknis OpenType.

Catatan

Header wingdi.h mendefinisikan GetGlyphOutline sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header wingdi.h (sertakan Windows.h)
Pustaka Gdi32.lib
DLL Gdi32.dll

Lihat juga

ExtTextOut

FORM_INFO_1

Fungsi Font dan Teks

Gambaran Umum Font dan Teks

GLYPHMETRICS

GetOutlineTextMetrics

MAT2

KERANGKATEXTMETRIC

TITIK

POINTFX

TTPOLYCURVE

TTPOLYGONHEADER