Skálázási effektus
Ezzel az effektusval fel- vagy leskálázhat egy képet. A hatás hat skálázási móddal rendelkezik: legközelebbi szomszéd, lineáris, köbös, többmintás lineáris, anizotróp és kiváló minőségű köb.
Az effektus CLSID azonosítója CLSID_D2D1Scale.
- példakép
- Effektus tulajdonságai
- Interpolációs módok
- Kimeneti bitkép
- követelmények
- Kapcsolódó témakörök
Példakép
Ez a példa azt mutatja be, hogy a skálázási effektus kétszer nagyobb a bemenetnél, és az eredeti méretre van körülvágás.
Előtt |
---|
![]() |
Után |
![]() |
ComPtr<ID2D1Effect> scaleEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Scale, &scaleEffect);
scaleEffect->SetInput(0, bitmap);
scaleEffect->SetValue(D2D1_SCALE_PROP_CENTER_POINT, D2D1::Vector2F(256.0f, 192.0f));
scaleEffect->SetValue(D2D1_SCALE_PROP_SCALE, D2D1::Vector2F(2.0f, 2.0f));
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(scaleEffect.Get());
m_d2dContext->EndDraw();
Effektus tulajdonságai
Név és index számbavételének megjelenítése | Leírás |
---|---|
Hangsor D2D1_SCALE_PROP_SCALE |
Az X és Y irányú skálázási mennyiség a kimeneti méret és a bemeneti méret arányában. Ez a tulajdonság a következő D2D1_VECTOR_2Fdefined: (X skálázás, Y skálázás). A skálázási összegek LEBEGŐPONTOSak, egység nélküliek, és pozitívnak vagy 0-nak kell lenniük. A típus D2D1_VECTOR_2F. Az alapértelmezett érték {1.0f, 1.0f}. |
CenterPoint D2D1_SCALE_PROP_CENTER_POINT |
A kép skálázási középpontja. Ez a tulajdonság egy D2D1_VECTOR_2F, amely a következőképpen van definiálva: (X. pont, Y. pont). Az egységek DIP-kben vannak. A középpont tulajdonság használatával a bal felső saroktól eltérő pont körül skálázhat. A típus D2D1_VECTOR_2F. Az alapértelmezett érték {0.0f, 0.0f}. |
BorderMode D2D1_SCALE_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 a D2D1_BORDER_MODE_SOFT. |
Élesség D2D1_SCALE_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 leskálázásakor 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. |
InterpolationMode D2D1_SCALE_PROP_INTERPOLATION_MODE |
Az interpolációs mód, amelyet az effektus a kép skálázásához használ. 6 skálázási mód érhető el, amelyek minőségben és sebességben is skálázhatók. További információért lásd interpolációs módokat. A típus D2D1_SCALE_INTERPOLATION_MODE. Az alapértelmezett érték a D2D1_SCALE_INTERPOLATION_MODE_LINEAR. |
Szegélymódok
Név | Leírás |
---|---|
D2D1_BORDER_MODE_SOFT | Az effektus átlátszó fekete képpontokkal párnáztatja a bemeneti képet a bemeneti korlátokon kívüli mintákhoz, amikor a konvolúciós kernelt alkalmazza. Ez egy puha élet hoz létre a képhez, és a folyamat során a kimeneti bitképet a kernel méretével bővíti. |
D2D1_BORDER_MODE_HARD | Az effektus kiterjeszti a bemeneti képet egy tükör típusú szegélyátalakítással a bemeneti korlátokon kívüli mintákhoz. A kimeneti bitkép mérete megegyezik a bemeneti bitkép méretével. |
`
Interpolációs módok
Felsorolás | Leírás |
---|---|
D2D1_SCALE_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_SCALE_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_SCALE_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_SCALE_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_SCALE_INTERPOLATION_MODE_ANISOTROPIC | Anizotróp szűréssel mintát vesz a bitkép átalakított alakjának megfelelően. |
D2D1_SCALE_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_SCALE_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 helye és mérete a megadott méretezési tényezőtől és a középponttól függ.
A kimeneti bitkép méretét az alábbi egyenlettel számíthatja ki:
- BitmapSizex(Pixels)=Scalex*Original Bitmap Sizex (DIPs)*(UserDPI/96)
BitmapSizey(Pixels)=Scaley*Original Bitmap Sizey (DIPs)*(UserDPI/96)
Az effektus a képpontok törtrészeit a legközelebbi teljes képpontra kerekít.
A bitkép helye (0, 0) vagy a középponti tulajdonság értéke.
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 |