2D affine transform effect
A 2D affine transzformációs effektus térbeli átalakítást alkalmaz egy 3X2 mátrixon alapuló képre a Direct2D mátrix átalakító és hat interpolációs mód bármelyikével. Ezzel az effektusval elforgathatja, méretezheti, elvarrhatja vagy lefordíthatja a képeket. Vagy kombinálhatja ezeket a műveleteket. Az affine-átvitelek megőrzik a párhuzamos vonalakat és a kép három pontja közötti távolságok arányát.
Az effektus CLSID azonosítója CLSID_D2D12DAffineTransform.
- példakép
- Effektus tulajdonságai
- szegélymódok
- Interpolációs módok
- Kimeneti bitkép
- követelmények
- Kapcsolódó témakörök
Példakép
Előtt |
---|
![]() |
Után |
![]() |
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();
Ez az effektus a következő mátrixműveletet hajtja végre:
Bár a bemeneti mátrix 3x2 mátrixként van definiálva, az utolsó oszlop 0, 0 és 1 értékekkel van párnázva egy négyzetes mátrix létrehozásához. Ez lehetővé teszi a mátrixok szorzását, így az átalakítások egyetlen mátrixmá összefűzhetők.
Effektus tulajdonságai
Név és index számbavételének megjelenítése | Leírás |
---|---|
InterpolationMode D2D1_2DAFFINETRANSFORM_PROP_INTERPOLATION_MODE |
A kép méretezéséhez használt interpolációs mód. 6 skálázási mód érhető el, amelyek minőségben és sebességben is skálázhatók. A típus D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE. Az alapértelmezett érték D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR. |
BorderMode D2D1_2DAFFINETRANSFORM_PROP_BORDER_MODE |
A kép szegélyének kiszámítására használt mód, puha vagy kemény. További információért tekintse meg szegélymódokat. A típus D2D1_BORDER_MODE. Az alapértelmezett érték D2D1_BORDER_MODE_SOFT. |
TransformMatrix D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX |
A 3x2 mátrix, amely átalakítja a képet a Direct2D mátrix használatával, átalakítja. A típus D2D1_MATRIX_3X2_F. Az alapértelmezett érték a Matrix3x2F::Identity(). |
Élesség D2D1_2DAFFINETRANSFORM_PROP_SHARPNESS |
Kiváló minőségű köbinterpolációs módban a skálázási szűrő élességi szintje lebegőpontosként 0 és 1 között van. Az értékek egység nélküliek. A kép méretezésekor az élesség használatával módosíthatja a kép minőségét. Az élességi tényező befolyásolja a kernel alakját. Minél nagyobb az élességi tényező, annál kisebb a kernel. Megjegyzés: Ez a tulajdonság csak a kiváló minőségű köbinterpolációs módot érinti. A típus FLOAT. Az alapértelmezett érték 0,0f. |
Szegélymódok
Név | Leírás |
---|---|
D2D1_BORDER_MODE_SOFT | Az effektus az interpoláció során átlátszó fekete képpontokkal párnázta meg a képet, ami puha élhez vezet. |
D2D1_BORDER_MODE_HARD | Az effektus a kimenetet a bemeneti kép méretéhez rögzíti. |
Interpolációs módok
Felsorolás | Leírás |
---|---|
D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR | Mintákat a legközelebbi egy pontot, és használja azt. Ez a mód kevesebb feldolgozási időt használ, de a legalacsonyabb minőségű képet adja ki. |
D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR | Négypontos mintát és lineáris interpolációt használ. Ez a mód több feldolgozási időt használ, mint a legközelebbi szomszéd mód, de jobb minőségű képet ad ki. |
D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_CUBIC | 16 köbélmintát használ az interpolációhoz. Ez a mód a legtöbb feldolgozási időt használja, de jobb minőségű képet ad ki. |
D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR | Egyetlen képponton belül 4 lineáris mintát használ a jó élelsimításhoz. Ez a mód alkalmas arra, hogy kis mennyiségekkel lefelé skálázható néhány képpontos képeken. |
D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC | Anizotróp szűréssel mintát vesz a bitkép átalakított alakjának megfelelően. |
D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC | Változó méretű, kiváló minőségű köbbél használatával előre leskálázhatja a képet, ha a skálázás részt vesz az átalakítási mátrixban. Ezután a végső kimenethez a köbinterpolációs módot használja. |
Jegyzet
Ha nem jelöl ki módot, az effektus alapértelmezés szerint D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR.
Jegyzet
Az anizotróp mód mipmap-okat hoz létre a skálázás során, azonban ha a Gyorsítótárazott tulajdonságot igaz értékre állítja az effektusba bemenő hatásokra, a mipmapok nem jönnek létre minden alkalommal a megfelelő méretű képekhez.
Kimeneti bitkép
A kimeneti bitkép mérete a képre alkalmazott átalakítási mátrixtól függ.
Az effektus végrehajtja az átalakítási műveletet, majd egy határolókeretet alkalmaz az eredmény körül. A kimeneti bitkép a határolókeret mérete.
Követelmények
Követelmény | Érték |
---|---|
Minimálisan támogatott ügyfél | Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások] |
Minimálisan támogatott kiszolgáló | Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások] |
Fejléc | d2d1effects.h |
Könyvtár | d2d1.lib, dxguid.lib |