Aracılığıyla paylaş


Doğrusal aktarım efekti

Her kanal için sağladığınız değerler listesinden oluşturulan doğrusal bir işlevi kullanarak görüntünün renk yoğunluklarını eşlemek için doğrusal aktarım efektini kullanın.

Bu etki için CLSID CLSID_D2D1LinearTransfer.

Örnek resim

Önce
Efektin önüne görüntüyü .
Sonra
Dönüştürmeden sonra görüntüyü .
ComPtr<ID2D1Effect> linearTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LinearTransfer, &linearTransferEffect);

linearTransferEffect->SetInput(0, bitmap);

linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_SLOPE, 2.5f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE, 5.0f);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(linearTransferEffect.Get());
m_d2dContext->EndDraw();

Doğrusal aktarım işlevi, belirttiğiniz her kanal için eğim ve y kesme noktası temelinde oluşturulur. C çıkış piksel yoğunluğu şu denklemle hesaplanır: C' = mC + B; burada m doğrusal işlevin eğimi ve B doğrusal işlevin Y kesme noktasıdır.

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

Doğrusal aktarım özelliklerinin tüm kanalları için:

  • Y-kesme noktası sınırlanmaz ve birimsizdir.
  • Eğim sınırlanmamıştır ve birimsizdir.
Görünen ad ve dizin numaralandırması Tür ve varsayılan değer Açıklama
RedYIntercept
D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT
YÜZMEK
0,0f
Kırmızı kanal için doğrusal işlevin Y kesme noktası.
RedSlope
D2D1_LINEARTRANSFER_PROP_RED_SLOPE
YÜZMEK
1,0f
Kırmızı kanal için doğrusal işlevin eğimi.
RedDisable
D2D1_LINEARTRANSFER_PROP_RED_DISABLE
BOOL
YANLIŞ
Bunu TRUE olarak ayarlarsanız, etki aktarım işlevini Kırmızı kanala uygulamaz. Bunu YANLIŞ olarak ayarlarsanız, etki RedLinearTransfer işlevini Kırmızı kanala uygular.
GreenYIntercept
D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT
YÜZMEK
0,0f
Yeşil kanal için doğrusal işlevin Y kesme noktası.
GreenSlope
D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE
YÜZMEK
1,0f
Yeşil kanal için doğrusal işlevin eğimi.
GreenDisable
D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE
BOOL
YANLIŞ
Bunu TRUE olarak ayarlarsanız, etki aktarım işlevini Yeşil kanala uygulamaz. Bunu YANLIŞ olarak ayarlarsanız GreenLinearTransfer işlevi Green kanalına uygulanır.
BlueYIntercept
D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT
YÜZMEK
0,0f
Mavi kanal için doğrusal işlevin Y kesme noktası.
BlueSlope
D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE
YÜZMEK
1,0f
Mavi kanal için doğrusal işlevin eğimi.
BlueDisable
D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE
BOOL
YANLIŞ
Bunu TRUE olarak ayarlarsanız, etki aktarım işlevini Mavi kanala uygulamaz. Bunu YANLIŞ olarak ayarlarsanız BlueLinearTransfer işlevi Mavi kanala uygulanır.
AlphaYIntercept
D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT
YÜZMEK
0,0f
Alfa kanalı için doğrusal işlevin Y kesme noktası.
AlfaSlope
D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE
YÜZMEK
0,0f
Alfa kanalı için doğrusal işlevin eğimi.
AlphaDisable
D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE
BOOL
YANLIŞ
Bunu TRUE olarak ayarlarsanız, etki aktarım işlevini Alfa kanalına uygulamaz. Bunu YANLIŞ olarak ayarlarsanız AlphaLinearTransfer işlevini Alfa kanalına uygular.
ClampOutput
D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT
BOOL
YANLIŞ
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.

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