Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Giriş görüntülerinden alınan ağırlıklı piksel toplamını kullanarak 2 görüntüyü birleştirmek için aritmetik bileşik efekti kullanın.
Bu etki için CLSID CLSID_D2D1ArithmeticComposite.
Formül
Buradaki formül bu etkiyi hesaplamak için kullanılır.
Outputrgba = C1 * Sourcergba * Destinationrgba + C2 * Sourcergba + C3 * Destinationrgba + C4
Burada C1, C2, C3, C4 ayarladığınız katsayılardır.
Katsayılar bir D2D1_VECTOR_4F değerleriyle eşler (x, y, z, w):
- x = C1
- y = C2
- z = C3
- w = C4
Örnek resim
Basit bir örnek, kaynak ve hedef pikselleri eklemektir. Örnekte, 2 yuvarlatılmış dikdörtgen bir araya toplanmıştır. Kaynak dikdörtgen mavi ve hedef kırmızıdır.
Buradaki görüntü, denklemin katsayılarının buradaki değerlere ayarlandığı Aritmetik Bileşik efektin çıktısıdır.
- C1 = 0
- C2 = 1
- C3 = 1
- C4 = 0
Aritmetik bileşik efekt kullanılarak çakışan aynı boyuttaki 2 yuvarlatılmış dikdörtgeni gösteren örnek bir görüntü 
Sonuç, kaynak ve hedef için piksel değerlerinin eklenmesidir. Dikdörtgenlerin RGBA değerleriyle çakışmadığı bölgeler 0'dır. R ve B değerlerinin her ikisi de en yüksek düzeyde olduğundan dikdörtgenlerin renkle çakıştığı yerde eflatun kullanılır.
Kod içeren başka bir örnek görüntü aşağıda verilmiştır.
| Görüntü 1'in öncesi |
|---|
Efekt öncesinde ilk kaynak görüntüyü ![]() |
| Görüntü 2'nin öncesi |
Efekt öncesinde ikinci görüntüyü ![]() |
| Sonra |
Dönüştürmeden sonra görüntüyü ![]() |
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();
Efekt özellikleri
| Görünen ad ve dizin numaralandırması | Açıklama |
|---|---|
| Katsayı -ları D2D1_ARITHMETICCOMPOSITE_PROP_COEFFICIENTS |
İki giriş resmini birleştirmede kullanılan denklemin katsayıları. Katsayılar birimsiz ve ilişkisizdir. Tür D2D1_VECTOR_4F. Varsayılan değer: {1.0f, 0.0f, 0.0f, 0.0f}. |
| ClampOutput D2D1_ARITHMETICCOMPOSITE_PROP_CLAMP_OUTPUT |
Efekt, değerleri grafikteki bir sonraki efekte geçirmeden önce renk değerlerini 0 ile 1 arasında bir değere kelepçeler. Bunu TRUE olarak ayarlarsanız, efekt değerleri sıkıştıracaktır. Bunu YANLIŞ olarak ayarlarsanız, efekt renk değerlerini sıkıştırmaz, ancak diğer efektler ve çıkış yüzeyi yeterince yüksek duyarlıkta değilse değerleri sıkıştırabilir. Tür BOOL'dir. Varsayılan değer YANLIŞ'tır. |
Çıktı bit eşlemi
Çıktı bit eşlemi katsayı değerlerine bağlıdır. Bunlar olası çıkış bit eşlem boyutlarıdır.
- C1 sıfır olmayan tek katsayıysa, çıkış boyutu giriş dikdörtgenlerinin kesişimidir.
- Sıfır olmayan tek katsayı C2 ise, çıkış boyutu Kaynak dikdörtgeninin boyutudur.
- Sıfır olmayan tek katsayı C3 ise, çıkış boyutu Hedef dikdörtgenin boyutudur..
- Tüm katsayılar sıfırsa, çıkış boyutu boş bir dikdörtgendir.
- Diğer tüm katsayı değerleri için çıkış boyutu, giriş dikdörtgenlerinin birleşimidir.
Gereksinim -leri
| Gereksinim | Değer |
|---|---|
| Desteklenen en düşük istemci | Windows 7 için Windows 8 ve Platform Güncelleştirmesi [masaüstü uygulamaları | Windows Mağazası uygulamaları] |
| Desteklenen en düşük sunucu | Windows 7 için Windows 8 ve Platform Güncelleştirmesi [masaüstü uygulamaları | Windows Mağazası uygulamaları] |
| Üstbilgi | d2d1effects.h |
| Kütüphane | d2d1.lib, dxguid.lib |


