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.
Her kanal için sağladığınız genlik, üs ve uzaklık kullanılarak oluşturulan gama işlevini kullanarak görüntünün renk yoğunluklarını eşlemek için gama aktarım efektini kullanın.
Bu etki için CLSID CLSID_D2D1GammaTransfer. Bu etkiyi kullanmak için bağlayıcı bağımlılıklarına dxguid.lib ekleyin.
Örnek resim
| Önce |
|---|
Efektin önüne görüntüyü ![]() |
| Sonra |
Dönüştürmeden sonra görüntüyü ![]() |
ComPtr<ID2D1Effect> gammaTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GammaTransfer, &gammaTransferEffect);
gammaTransferEffect->SetInput(0, bitmap);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_RED_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT, 0.25f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(gammaTransferEffect.Get());
m_d2dContext->EndDraw();
Bu etki, buradaki denkleme göre bir gama aktarım işlevi uygular.
Giriş piksel yoğunluğu C, çıkış piksel yoğunluğu ise C' olarak gösterilir. C' = Genlik * CÜs + Uzaklık
Bu etki düz ve önceden yüklenmiş alfa görüntülerinde çalışır. Efekt, önceden çoğaltılmış alfa bit eşlemleri oluşturur.
Efekt özellikleri
Not
Gama aktarımı özelliklerinin tüm kanalları için:
- Genlik değeri sınırlanmaz ve birimsizdir.
- Üs değeri sınırlanmaz ve birimsizdir.
- Uzaklık değeri sınırlanmaz ve birimsizdir.
| Görünen ad ve dizin numaralandırması | Açıklama |
|---|---|
| RedAmplitude D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE |
Kırmızı kanal için gama aktarım işlevinin genliği. Tür FLOAT'dır. Varsayılan değer 1,0f'dir. |
| RedExponent D2D1_GAMMATRANSFER_PROP_RED_EXPONENT |
Kırmızı kanal için gama aktarım işlevinin üssü. Tür FLOAT'dır. Varsayılan değer 1,0f'dir. |
| RedOffset D2D1_GAMMATRANSFER_PROP_RED_OFFSET |
Kırmızı kanal için gama aktarım işlevinin uzaklığı. Tür FLOAT'dır. Varsayılan değer 0,0f'dir. |
| RedDisable D2D1_GAMMATRANSFER_PROP_RED_DISABLE |
Bunu TRUE olarak ayarlarsanız aktarım işlevi Kırmızı kanala uygulanmaz. Kimlik aktarım işlevi kullanılır. Bunu YANLIŞ olarak ayarlarsanız gama aktarım işlevi Kırmızı kanala uygulanır. Türü BOOL'dir. Varsayılan değer YANLIŞ'tır. |
| GreenAmplitude D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE |
Yeşil kanal için gama aktarım işlevinin genliği. Tür FLOAT'dır. Varsayılan değer 1,0f'dir. |
| GreenExponent D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT |
Yeşil kanal için gama aktarım işlevinin üssü. Tür FLOAT'dır. Varsayılan değer 1,0f'dir. |
| GreenOffset D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET |
Yeşil kanal için gama aktarım işlevinin uzaklığı. Tür FLOAT'dır. Varsayılan değer 0,0f'dir. |
| GreenDisable D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE |
Bunu TRUE olarak ayarlarsanız, aktarım işlevi Yeşil kanala uygulanmaz. Kimlik aktarım işlevi kullanılır. Bunu YANLIŞ olarak ayarlarsanız gama aktarım işlevi Yeşil kanala uygulanır. Türü BOOL'dir. Varsayılan değer YANLIŞ'tır. |
| BlueAmplitude D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE |
Mavi kanal için gama aktarım işlevinin genliği. Tür FLOAT'dır. Varsayılan değer 1,0f'dir. |
| BlueExponent D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT |
Mavi kanal için gama aktarım işlevinin üssü. Tür FLOAT'dır. Varsayılan değer 1,0f'dir. |
| BlueOffset D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET |
Mavi kanal için gama aktarım işlevinin uzaklığı. Tür FLOAT'dır. Varsayılan değer 0,0f'dir. |
| BlueDisable D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE |
Bunu TRUE olarak ayarlarsanız aktarım işlevi Mavi kanala uygulanmaz. Kimlik aktarım işlevi kullanılır. Bunu YANLIŞ olarak ayarlarsanız gama aktarım işlevi Mavi kanala uygulanır. Türü BOOL'dir. Varsayılan değer YANLIŞ'tır. |
| AlphaAmplitude D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE |
Alfa kanalı için gama aktarım işlevinin genliği. Tür FLOAT'dır. Varsayılan değer 1,0f'dir. |
| AlphaExponent D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT |
Alfa kanalı için gama aktarım işlevinin üssü. Tür FLOAT'dır. Varsayılan değer 1,0f'dir. |
| AlphaOffset D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET |
Alfa kanalı için gama aktarım işlevinin uzaklığı. Tür FLOAT'dır. Varsayılan değer 0,0f'dir. |
| AlphaDisable D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE |
Bunu TRUE olarak ayarlarsanız aktarım işlevi alfa kanalına uygulanmaz. Kimlik aktarım işlevi kullanılır. Bunu YANLIŞ olarak ayarlarsanız gama aktarım işlevini alfa kanalına uygular. Türü BOOL'dir. Varsayılan değer YANLIŞ'tır. |
| ClampOutput D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT |
Efektin renk değerlerini efektten önce 0 ile 1 arasında bir değere sıkıştırıp bağlamadığı, değerleri grafikteki bir sonraki efekte geçirir. Etkisi, alfayı önceden yüklemeden önce değerleri sıkıştırıyor. 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şlem boyutu, giriş bit eşlem boyutuyla aynıdır.
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 |

