Aracılığıyla paylaş


Gama aktarım etkisi

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

ID2D1Fefek