Aritmetikai összetett effektus
Az aritmetikai összetett effektussal 2 képet egyesíthet a bemeneti képek súlyozott képpontösszegével.
Az effektus CLSID azonosítója CLSID_D2D1ArithmeticComposite.
Képlet
Az itt található képlet az effektus kiszámítására szolgál.
Kimenetirgba = C1 * Forrásrgba * Célrgba + C2 * Forrásrgba + C3 * Célrgba + C4
Ahol a C1, C2, C3, C4 együtthatók vannak megadva.
Az együtthatók egy D2D1_VECTOR_4F értékeire képeznek leképezést (x, y, z, w):
- x = C1
- y = C2
- z = C3
- w = C4
Példakép
Egy egyszerű példa a forrás- és cél képpontok hozzáadására. A példában két lekerekített téglalap van összeállítva. A forrás téglalapja kék, a cél pedig piros.
Az alábbi képen az Aritmetikai összetett effektus kimenete látható az itt megadott értékekre beállított egyenlet együtthatóival.
- C1 = 0
- C2 = 1
- C3 = 1
- C4 = 0
Az eredmény az, hogy a forrás és a cél képpontértékei hozzáadódnak. Azok a régiók, ahol a téglalapok nem fedik át az RGBA-értékeket, mind 0. Ahol a téglalapok átfedésben vannak a színnel, az magenta, mert az R és a B érték is maximális.
Íme egy másik példa kép kóddal.
1. kép előtt |
---|
![]() |
2. kép előtt |
![]() |
Után |
![]() |
ComPtr<ID2D1Effect> arithmeticCompositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1ArithmeticComposite, &arithmeticCompositeEffect);
arithmeticCompositeEffect->SetInput(0, bitmap);
arithmeticCompositeEffect->SetInput(1, bitmapTwo);
arithmeticCompositeEffect->SetValue(D2D1_ARITHMETICCOMPOSITE_PROP_COEFFICIENTS, D2D1::Vector4F(0.0f, 0.5f, 0.5f, 0.0f));
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(arithmeticCompositeEffect.Get());
m_d2dContext->EndDraw();
Effektus tulajdonságai
Név és index számbavételének megjelenítése | Leírás |
---|---|
Együtthatók D2D1_ARITHMETICCOMPOSITE_PROP_COEFFICIENTS |
A két bemeneti kép összevonásához használt egyenlet együtthatói. Az együtthatók egység nélküliek és kötetlenek. A típus D2D1_VECTOR_4F. Alapértelmezett érték: {1.0f, 0.0f, 0.0f, 0.0f}. |
ClampOutput D2D1_ARITHMETICCOMPOSITE_PROP_CLAMP_OUTPUT |
Az effektus 0 és 1 közé szorítja a színértékeket, mielőtt az effektus átadja az értékeket a következő effektusnak a gráfban. Ha igaz értékre állítja, az effektus az értékeket fogja szorítani. Ha HAMIS értékre állítja ezt be, az effektus nem fogja be a színértékeket, de más effektusok és a kimeneti felület is rögzítheti az értékeket, ha nem elég nagy pontosságúak. A típus BOOL. Az alapértelmezett érték HAMIS. |
Kimeneti bitkép
A kimeneti bitkép a együttható értékeitől függ. Ezek a kimeneti bitképek lehetséges méretei.
- Ha a C1 az egyetlen nem nulla együttható, a kimeneti méret a bemeneti téglalapok metszete.
- Ha a C2 az egyetlen nem nulla együttható, a kimeneti méret a Forrás téglalap mérete.
- Ha a C3 az egyetlen nem nulla együttható, a kimeneti méret a Cél téglalap mérete.
- Ha minden együttható nulla, a kimeneti méret üres téglalap.
- Az összes többi együtthatóérték esetében a kimeneti méret a bemeneti téglalapok egyesítését jelöli.
Követelmények
Követelmény | Érték |
---|---|
Minimálisan támogatott ügyfél | Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások] |
Minimálisan támogatott kiszolgáló | Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások] |
Fejléc | d2d1effects.h |
Könyvtár | d2d1.lib, dxguid.lib |