enumerasi D2D1_ALPHA_MODE (dcommon.h)

Menentukan bagaimana nilai alfa dari bitmap atau target render harus diperlakukan.

Sintaks

typedef enum D2D1_ALPHA_MODE {
  D2D1_ALPHA_MODE_UNKNOWN = 0,
  D2D1_ALPHA_MODE_PREMULTIPLIED = 1,
  D2D1_ALPHA_MODE_STRAIGHT = 2,
  D2D1_ALPHA_MODE_IGNORE = 3,
  D2D1_ALPHA_MODE_FORCE_DWORD = 0xffffffff
} ;

Konstanta

 
D2D1_ALPHA_MODE_UNKNOWN
Nilai: 0
Nilai alfa mungkin tidak bermakna.
D2D1_ALPHA_MODE_PREMULTIPLIED
Nilai: 1
Nilai alfa telah diisi sebelumnya. Setiap warna pertama kali diskalakan oleh nilai alfa. Nilai alfa itu sendiri sama dalam alfa lurus dan premultiplied. Biasanya, tidak ada nilai saluran warna yang lebih besar dari nilai saluran alfa. Jika nilai saluran warna dalam format yang telah ditentukan sebelumnya lebih besar dari saluran alfa, campuran sumber atas standar menghasilkan campuran aditif.
D2D1_ALPHA_MODE_STRAIGHT
Nilai: 2
Nilai alfa belum diisi sebelumnya. Saluran alfa menunjukkan transparansi warna.
D2D1_ALPHA_MODE_IGNORE
Nilai: 3
Nilai alfa diabaikan.
D2D1_ALPHA_MODE_FORCE_DWORD
Nilai: 0xffffffff

Keterangan

Enumerasi D2D1_ALPHA_MODE digunakan dengan enumerasi D2D1_PIXEL_FORMAT untuk menentukan mode alfa dari target render atau bitmap. Target render dan bitmap yang berbeda mendukung mode alfa yang berbeda. Untuk daftar, lihat Format Piksel dan Mode Alfa yang Didukung.

Perbedaan Antara Alfa Lurus dan Premultiplied

Saat menjelaskan warna RGBA menggunakan alfa lurus, nilai alfa warna disimpan di saluran alfa. Misalnya, untuk menjelaskan warna merah yang buram 60%, Anda akan menggunakan nilai berikut: (255, 0, 0, 255 * 0,6) = (255, 0, 0, 153). Nilai 255 menunjukkan merah penuh, dan 153 (yaitu 60 persen dari 255) menunjukkan bahwa warna harus memiliki opasitas 60 persen.

Saat menjelaskan warna RGBA menggunakan alfa yang telah diubah sebelumnya, setiap warna dikalikan dengan nilai alfa: (255 * 0,6, 0 * 0,6, 0 * 0,6, 255 * 0,6) = (153, 0, 0, 153).

Terlepas dari mode alfa target render, nilai D2D1_COLOR_F selalu ditafsirkan sebagai alfa lurus. Misalnya, saat menentukan warna ID2D1SolidColorBrush untuk digunakan dengan bitmap yang menggunakan mode alfa yang telah diubah sebelumnya, Anda akan menentukan warna seperti yang Anda lakukan jika bitmap menggunakan alfa lurus. Saat Anda melukis dengan kuas, Direct2D menerjemahkan warna ke format tujuan untuk Anda.

Mode Alfa untuk Target Render

Terlepas dari pengaturan mode alfa, konten target render mendukung transparansi. Misalnya, jika Anda menggambar persegi panjang merah transparan sebagian dengan target render dengan mode alfa D2D1_ALPHA_MODE_IGNORE, persegi panjang akan tampak merah muda (jika latar belakang putih), seperti yang Anda harapkan.

Jika Anda menggambar persegi panjang merah transparan sebagian saat mode alfa adalah metode CreateCompatibleRenderTarget ) untuk membuat bitmap yang mendukung transparansi.

Mode ClearType dan Alpha

Jika Anda menentukan mode alfa selain D2D1_ALPHA_MODE_IGNORE untuk target render, mode antialias teks secara otomatis berubah dari D2D1_TEXT_ANTIALIAS_MODE CLEARTYPE ke D2D1_TEXT_ANTIALIAS_MODE GRAYSCALE. (Saat Anda menentukan mode alfa D2D1_ALPHA_MODE_UNKNOWN, Direct2D mengatur alfa untuk Anda tergantung pada jenis target render. Untuk daftar apa yang diselesaikan pengaturan D2D1_ALPHA_MODE_UNKNOWN untuk setiap target render, lihat Gambaran umum Format Piksel dan Mode Alfa yang Didukung .)

Anda dapat menggunakan metode SetTextAntialiasMode untuk mengubah mode antialias teks kembali ke D2D1_TEXT_ANTIALIAS_MODE CLEARTYPE, tetapi merender teks ClearType ke permukaan transparan dapat membuat hasil yang tidak dapat diprediksi. Jika Anda ingin merender teks ClearType ke target render transparan, kami sarankan Anda menggunakan salah satu dari dua teknik berikut.

  • Gunakan metode PushAxisAlignedClip untuk mengklip target render ke area tempat teks akan dirender, lalu panggil metode Clear dan tentukan warna buram, lalu render teks Anda.
  • Gunakan DrawRectangle untuk menggambar persegi panjang buram di belakang area tempat teks akan dirender.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7, Windows Vista dengan SP2 dan Pembaruan Platform untuk Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 R2, Windows Server 2008 dengan SP2 dan Pembaruan Platform untuk Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Header dcommon.h (termasuk D2d1.h)

Lihat juga

Format Piksel dan Mode Alfa yang Didukung