Fungsi GetGlyphOutlineW (wingdi.h)
Fungsi GetGlyphOutline mengambil kerangka atau bitmap untuk karakter dalam font TrueType yang dipilih ke dalam konteks perangkat yang ditentukan.
Sintaks
DWORD GetGlyphOutlineW(
[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 |
---|---|
|
Fungsi ini mengambil data kurva sebagai spline Bézier kubik (bukan dalam format spline kuadrat). |
|
Fungsi ini mengambil bitmap glyph. Untuk informasi tentang alokasi memori, lihat bagian Keterangan berikut ini. |
|
Menunjukkan bahwa parameter uChar adalah Indeks TrueType Glyph daripada kode karakter. Lihat fungsi ExtTextOut untuk keterangan tambahan tentang Pengindeksan Glyph. |
|
Fungsi ini mengambil bitmap glyph yang berisi lima tingkat abu-abu. |
|
Fungsi ini mengambil bitmap glyph yang berisi 17 tingkat abu-abu. |
|
Fungsi ini mengambil bitmap glyph yang berisi 65 tingkat abu-abu. |
|
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. |
|
Fungsi ini mengambil titik data kurva dalam format asli rasterizer dan menggunakan unit desain font. |
|
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.
Nilai kembali
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 |