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.

Catatan

Efek ini tidak memiliki properti.

 

CLSID untuk efek ini CLSID_D2D1LuminanceToAlpha.

Contoh gambar

Contoh ini menunjukkan output dari luminance ke efek alfa yang dikomposisikan di atas permukaan putih untuk menunjukkan keburaman.

Sebelumnya
gambar sebelum efek.
Sesudahnya
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 ditentukan sebelumnya. Efeknya tidak akan bekerja pada gambar alfa lurus kecuali gambar tersebut sepenuhnya buram.

Catatan

Karena gambar disimpan dalam format kompensasi gamma, sebelum Anda menghitung luminance untuk gambar, Anda harus terlebih dahulu melakukan koreksi gamma terbalik untuk mendapatkan nilai warna yang 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

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

 

Bitmap output

Output berukuran sama dengan gambar input.

ID2D1Effect