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.
2B benfin dönüştürme efekti, Direct2D matrisini kullanarak 3X2 matrisi temelinde bir görüntüye uzamsal dönüşüm uygular dönüştürme ve altı ilişkilendirme modundan herhangi birini kullanarak. Bir görüntüyü döndürmek, ölçeklendirmek, eğmek veya çevirmek için bu efekti kullanabilirsiniz. İsterseniz bu işlemleri birleştirebilirsiniz. Benfin aktarımları paralel çizgileri ve görüntüdeki herhangi bir üç nokta arasındaki uzaklık oranını korur.
Bu etki için CLSID CLSID_D2D12DAffineTransform.
- Örnek görüntü
- Efekt özellikleri
- Kenarlık modları
- ilişkilendirme modları
- Çıktı bit eşlem
- Gereksinimleri
- İlgili konular
Örnek resim
| Önce |
|---|
Efektin önüne görüntüyü ![]() |
| Sonra |
Dönüştürmeden sonra görüntüyü ![]() |
ComPtr<ID2D1Effect> affineTransformEffect;
m_d2dContext->CreateEffect(CLSID_D2D12DAffineTransform, &affineTransformEffect);
affineTransformEffect->SetInput(0, bitmap);
D2D1_MATRIX_3X2_F matrix = D2D1::Matrix3x2F(0.9f, -0.1f, 0.1f, 0.9f, 8.0f, 45.0f);
affineTransformEffect->SetValue(D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX, matrix);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(affineTransformEffect.Get());
m_d2dContext->EndDraw();
Bu etki şu matris işlemini gerçekleştirir:
Giriş matrisi 3x2 matrisi olarak tanımlansa da, kare matris oluşturmak için son sütun 0, 0 ve 1 ile doldurulur. Bu, matris çarpmasına olanak tanır, böylece dönüşümler tek bir matriste birleştirilebilir.
Efekt özellikleri
| Görünen ad ve dizin numaralandırması | Açıklama |
|---|---|
| InterpolationMode D2D1_2DAFFINETRANSFORM_PROP_INTERPOLATION_MODE |
Görüntüyü ölçeklendirmek için kullanılan ilişkilendirme modu. Kalite ve hız aralığında 6 ölçek modu vardır. Tür D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE. Varsayılan değer D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR. |
| BorderMode D2D1_2DAFFINETRANSFORM_PROP_BORDER_MODE |
Görüntünün kenarını yumuşak veya sert olarak hesaplamak için kullanılan mod. Daha fazla bilgi için bkz. Kenarlık modları. Tür D2D1_BORDER_MODE. Varsayılan değer D2D1_BORDER_MODE_SOFT. |
| TransformMatrix D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX |
Direct2D matrisini kullanarak görüntüyü dönüştürmek için 3x2 matrisi dönüştürün. Tür D2D1_MATRIX_3X2_F. Varsayılan değer Matrix3x2F::Identity()'dir. |
| Net -lik D2D1_2DAFFINETRANSFORM_PROP_SHARPNESS |
Yüksek kaliteli kübik ilişkilendirme modunda, ölçeklendirme filtresinin keskinlik düzeyi 0 ile 1 arasında bir float olarak. Değerler birimsizdir. Görüntüyü ölçeklendirirken görüntünün kalitesini ayarlamak için netlik kullanabilirsiniz. Keskinlik faktörü çekirdeğin şeklini etkiler. Netlik faktörü ne kadar yüksek olursa çekirdek de o kadar küçük olur. Not: Bu özellik yalnızca yüksek kaliteli kübik ilişkilendirme modunu etkiler. Tür FLOAT'dır. Varsayılan değer 0,0f'dir. |
Kenarlık modları
| Ad | Açıklama |
|---|---|
| D2D1_BORDER_MODE_SOFT | Efekt, görüntüyü ara değer olarak saydam siyah piksellerle doldurur ve yumuşak bir kenar elde eder. |
| D2D1_BORDER_MODE_HARD | Efekt, çıkışı giriş görüntüsünün boyutuna sıkıştırır. |
İlişkilendirme modları
| Sayım | Açıklama |
|---|---|
| D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR | En yakın tek noktayı örnekler ve bunu kullanır. Bu mod daha az işlem süresi kullanır, ancak en düşük kaliteli görüntüyü görüntüler. |
| D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR | Dört noktalı örnek ve doğrusal ilişkilendirme kullanır. Bu mod, en yakın komşu modundan daha fazla işlem süresi kullanır, ancak daha yüksek kaliteli bir görüntü oluşturur. |
| D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_CUBIC | İlişkilendirme için 16 örnek kübik çekirdek kullanır. Bu mod en fazla işlem süresini kullanır, ancak daha yüksek kaliteli bir görüntü oluşturur. |
| D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR | İyi kenar diğer adlara karşı koruma için tek bir piksel içinde 4 doğrusal örnek kullanır. Bu mod, birkaç piksel içeren görüntülerde küçük miktarlarda ölçeği küçültmek için iyidir. |
| D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC | Bit eşlemin dönüştürülmüş şekline göre bir desen örneklemek için anizotropik filtreleme kullanır. |
| D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC | Dönüştürme matrisinde downscaling söz konusuysa görüntüyü önceden küçültmek için değişken boyutlu yüksek kaliteli kübik çekirdek kullanır. Ardından son çıkış için küp ilişkilendirme modunu kullanır. |
Not
Mod seçmezseniz efekt varsayılan olarak D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR olur.
Not
Anisotropik mod ölçeklendirme sırasında mipmap'ler oluşturur, ancak bu etkiye giriş olan efektlerde önbelleğe alınmış özelliğini true olarak ayarlarsanız, yeterince küçük görüntüler için her seferinde mipmap'ler oluşturulmaz.
Çıktı bit eşlemi
Çıktı bit eşleminin boyutu, görüntüye uygulanan dönüştürme matrisine bağlıdır.
Etkisi dönüştürme işlemini gerçekleştirir ve ardından sonucun etrafına sınırlayıcı bir kutu uygular. Çıktı bit eşlemi sınırlayıcı kutunun boyutudur.
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 |

