Bagikan melalui


Luminance ke efek alfa

Gunakan efek luminance to alpha untuk mengatur saluran alfa ke luminance gambar dan mengatur saluran warna ke 0. Anda dapat menggunakan output efek ini untuk membuat overlay semitransparan berdasarkan kecerahan gambar input. Atau Anda dapat menggunakannya untuk membuat masker gambar.

Nota

Efek ini tidak memiliki properti.

 

CLSID untuk efek ini CLSID_D2D1LuminanceToAlpha.

Contoh gambar

Contoh ini menunjukkan output luminance ke efek alfa yang terdiri dari permukaan putih untuk menunjukkan keburaman.

Sebelum
gambar sebelum efek.
Sesudah
gambar setelah transformasi.

 

ComPtr<ID2D1Effect> luminanceToAlphaEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LuminanceToAlpha, &luminanceToAlphaEffect);

luminanceToAlphaEffect->SetInput(0, bitmap);

// LuminanceToAlpha result is composited on top of a white surface to show opacity.
ComPtr<ID2D1Effect> floodEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Flood, &floodEffect);
floodEffect->SetValue(D2D1_FLOOD_PROP_COLOR, D2D1::Vector4F(1.0f, 1.0f, 1.0f, 1.0f));

ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);

compositeEffect->SetInputEffect(0, floodEffect.Get());
compositeEffect->SetInputEffect(1, luminanceToAlphaEffect.Get());

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();

Efek ini mengatur saluran alfa output ke luminance gambar input menggunakan matriks warna ini.

matriks warna yang digunakan efek untuk mengatur saluran alfa.

Efek ini mengonsumsi dan menghasilkan gambar alfa yang telah di-premultip. Efeknya tidak akan bekerja pada gambar alfa lurus kecuali gambar tersebut benar-benar buram.

Nota

Karena gambar disimpan dalam format yang dikompensasi gamma, sebelum Anda menghitung luminance untuk gambar, Anda harus terlebih dahulu melakukan koreksi gamma terbalik untuk mendapatkan nilai warna sebenarnya untuk gambar. Karena gambar biasanya disimpan pada gamma 2.2, Anda dapat menggunakan efek transfer Gamma dengan eksponen (1/2.2) dan kemudian menggunakan output efek tersebut.

 

Persyaratan

Syarat Nilai
Klien minimum yang didukung Pembaruan Windows 8 dan Platform untuk Windows 7 [aplikasi desktop | Aplikasi Bursa Windows]
Server minimum yang didukung Pembaruan Windows 8 dan Platform untuk Windows 7 [aplikasi desktop | Aplikasi Bursa Windows]
Header d2d1effects.h
Perpustakaan d2d1.lib, dxguid.lib

 

Bitmap output

Output berukuran sama dengan gambar input.

ID2D1Effect