Bagikan melalui


ClearType Antialiasing

Antialias Microsoft ClearType adalah metode penghalusan yang meningkatkan resolusi tampilan font melalui antialias tradisional. Ini secara dramatis meningkatkan keterbacaan pada monitor LCD warna dengan antarmuka digital, seperti yang ada di laptop dan layar desktop datar berkualitas tinggi. Keterbacaan pada layar CRT juga agak ditingkatkan.

Namun, ClearType tergantung pada orientasi dan urutan garis LCD. Saat ini, ClearType hanya diimplementasikan untuk LCD dengan garis-garis vertikal yang diurutkan RGB. Secara khusus, ini mempengaruhi PC tablet, di mana tampilan dapat berorientasi ke segala arah, dan layar yang dapat diubah dari lanskap ke potret.

Antialias ClearType diperbolehkan:

  • Untuk warna 16, 24, dan 32-bit (dinonaktifkan untuk 256 warna atau kurang)
  • Untuk DC layar dan DC memori (bukan untuk printer DC)
  • Untuk font TrueType dan font OpenType dengan kerangka TrueType

Antialias ClearType dinonaktifkan:

  • Di bawah klien server terminal
  • Untuk font bitmap, font vektor, font perangkat, font Tipe 1, atau font Postscript OpenType tanpa kerangka TrueType
  • Jika font memiliki bitmap tersemat yang disematkan, hanya untuk ukuran font yang berisi bitmap yang disematkan

Untuk mengaktifkan antialias ClearType, panggil SystemParametersInfo sekali untuk mengaktifkan penghalusan font lalu kedua kalinya untuk mengatur jenis penghalusan ke FE_FONTSMOOTHINGCLEARTYPE, seperti yang ditunjukkan dalam sampel kode berikut:

SystemParametersInfo(SPI_SETFONTSMOOTHING,
                     TRUE,
                     0,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
SystemParametersInfo(SPI_SETFONTSMOOTHINGTYPE,
                     0,
                     (PVOID)FE_FONTSMOOTHINGCLEARTYPE,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 

Anda dapat menyesuaikan tampilan teks dengan mengubah nilai kontras yang digunakan dalam algoritma ClearType. Defaultnya adalah 1.400, tetapi dapat berupa nilai apa pun dari 1.000 hingga 2.200. Bergantung pada perangkat tampilan dan sensitivitas pengguna terhadap warna, nilai kontras yang lebih tinggi atau lebih rendah dapat meningkatkan keterbacaan. Untuk mengubah kontras, panggil SystemParametersInfo dengan SPI_SETFONTSMOOTHINGCONTRAST. Kode berikut menetapkan nilai kontras menjadi 1.600.

SystemParametersInfo(SPI_SETFONTSMOOTHINGCONTRAST,
                     0,
                     (PVOID)1600,
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); 

Anda harus mempertimbangkan detail berikut untuk kompatibilitas aplikasi:

  • Penyajian teks dengan ClearType sedikit lebih lambat daripada dengan antialias standar.
  • Aplikasi tidak boleh menggunakan XOR untuk menampilkan teks yang dipilih. Aplikasi harus mengatur warna latar belakang dan memutar ulang teks yang dipilih.
  • Aplikasi tidak boleh melukis teks yang sama di atas dirinya sendiri dalam mode transparan. Jika ini terjadi, piksel tepi yang diantisipasi akan mewarnai bergabung dengan dirinya sendiri alih-alih dengan warna latar belakang. Ini menghasilkan tepi yang gelap dan berwarna-warni.
  • Aplikasi tidak boleh melukis teks dengan melukis karakter satu per satu ketika dalam mode buram karena tepi karakter dapat dipotong oleh karakter berikut. Ini terjadi karena karakter yang dihaluskan dengan ClearType mungkin memiliki lebar A atau C negatif di mana karakter reguler memiliki lebar A atau C positif. Hanya lebar B karakter yang dijamin sama. Demikian juga, aplikasi harus berhati-hati jika teks yang dihaluskan berada di samping teks yang tidak dilepaskan.
  • Jika aplikasi merender teks lalu memanipulasi bitmap, penghalusan font harus dimatikan dengan mengatur anggota lfQuality dari struktur LOGFONT ke NONANTIALIASED_QUALITY. Misalnya, game dapat menambahkan efek bayangan bitmap, atau teks yang dirender ke dalam bitmap dapat diskalakan untuk menghasilkan thumbview.
  • Jika pengguna berjalan dalam mode potret (yaitu, striping monitor adalah horizontal) Antialias ClearType harus dinonaktifkan.

Parameter fdwQuality di CreateFont dan anggota lfQualityLOGFONT menerima bendera CLEARTYPE_QUALITY. Rasterisasi font yang dibuat dengan bendera ini akan menggunakan pemerkosa ClearType. Bendera ini tidak berpengaruh pada versi sistem operasi sebelumnya.