共用方式為


2D 仿射轉換效果

2D 仿射轉換效果會使用 Direct2D 矩陣轉換和六種插補模式的任何一種,根據 3X2 矩陣 ,將空間轉換 套用至影像。 您可以使用這個效果來旋轉、縮放、扭曲或轉譯影像。 或者,您可以結合這些作業。 Affine 傳輸會保留平行線條,以及影像中任三點之間的距離比例。

這個效果的 CLSID 是CLSID_D2D12DAffineTransform。

範例影像

之前
效果之前的影像。
之後
轉換之後的影像。
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();

此效果會執行此矩陣作業:

仿射矩陣運算

雖然輸入矩陣定義為 3x2 矩陣,但最後一個數據行會以 0、0 和 1 填補,以產生平方矩陣。 這允許矩陣乘法,讓轉換可以串連成單一矩陣。

效果屬性

顯示名稱和索引列舉 描述
InterpolationMode
D2D1_2DAFFINETRANSFORM_PROP_INTERPOLATION_MODE
用來調整影像的插補模式。 有 6 種縮放模式在品質和速度範圍內。
類型為 D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE。
預設值為 D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR。
BorderMode
D2D1_2DAFFINETRANSFORM_PROP_BORDER_MODE
用來計算影像框線、軟式或硬式的模式。 如需詳細資訊,請參閱 框線模式
類型為 D2D1_BORDER_MODE。
預設值為 D2D1_BORDER_MODE_SOFT。
TransformMatrix
D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX
使用 Direct2D 矩陣轉換轉換影像的 3x2 矩陣
類型為 D2D1_MATRIX_3X2_F。
默認值為 Matrix3x2F::Identity()。
清晰度
D2D1_2DAFFINETRANSFORM_PROP_SHARPNESS
在高品質的立方插補模式中,縮放篩選條件的銳度層級為介於 0 到 1 之間的浮點數。 這些值是無單位的。 當您調整影像時,您可以使用銳度來調整影像的品質。
銳度因數會影響核心的形狀。 銳度係數越高,核心越小。
注意: 此屬性只會影響高品質的立方插補模式。
類型為 FLOAT。
預設值為 0.0f。

框線模式

名稱 描述
D2D1_BORDER_MODE_SOFT 效果會在影像插補時以透明黑色圖元填補影像,導致柔邊。
D2D1_BORDER_MODE_HARD 效果會將輸出限制為輸入影像的大小。

插補模式

列舉型別 描述
D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR 取樣最接近的單一點,並使用該點。 此模式會使用較少的處理時間,但會輸出品質最低的影像。
D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR 使用四點樣本和線性插補。 此模式使用的處理時間比最接近的鄰近模式還多,但輸出品質較高的影像。
D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_CUBIC 使用16個樣本立方核心進行插補。 此模式會使用最多處理時間,但輸出品質較高的影像。
D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR 在單一像素內使用 4 個線性樣本,以取得良好的邊緣消除鋸齒功能。 此模式適合在影像上以少量像素縮小。
D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC 使用非等性篩選,根據點陣圖的轉換圖形取樣圖樣。
D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC 使用可變大小的高品質立方核心,在轉換矩陣中涉及縮小比例時,執行影像的預先調整。 然後使用三次插補模式進行最終輸出。

注意

如果您未選取模式,效果預設為D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR。

注意

不過,當您調整時,Anisotropic 模式會產生Mipmap,不過,如果您將Cached屬性設定為 true,則每次對於足夠小的影像而言,都不會產生Mipmap。

輸出點陣圖

輸出點陣圖的大小取決於套用至影像的轉換矩陣。

效果會執行轉換作業,然後在結果周圍套用周框方塊。 輸出點陣圖是周框方塊的大小。

需求

需求
最低支援的用戶端 適用於 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式]
最低支援的伺服器 適用於 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |Windows 市集應用程式]
頁首 d2d1effects.h
程式庫 d2d1.lib、dxguid.lib

ID2D1Effect