Bitkép forráseffektusa
A bitképforrás-effektussal ID2D1Image generálhat egy IWICBitmapSource egy effektusdiagram bemeneteként. Ez az effektus skálázást és forgatást végez a processzoron. Emellett opcionálisan rendszermemória-mipmap-et is létrehozhat, amely teljesítményoptimalizálás lehet a nagy méretű képek aktívan skálázására különböző csökkentett felbontások mellett.
Jegyzet
A bitkép forráseffektusa tulajdonságként, nem képbemenetként használja a bemenetet. A SetValue metódust kell használnia, nem a SetInput metódust. A WicBitmapSource tulajdonság adja meg a képbeviteli adatokat.
Az effektus CLSID azonosítója CLSID_D2D1BitmapSource.
- Effektus tulajdonságai
- Interpolációs módok
- Tájolás
- Alfa módú
- megjegyzések
- követelmények
- Kapcsolódó témakörök
Effektus tulajdonságai
Név és index számbavételének megjelenítése | Leírás |
---|---|
WicBitmapSource D2D1_BITMAPSOURCE_PROP_WIC_BITMAP_SOURCE |
A betöltendő képadatokat tartalmazó IWICBitmapSource. A típus az IWICBitmapSource . Az alapértelmezett érték NULL. |
Hangsor D2D1_BITMAPSOURCE_PROP_SCALE |
Az X és Y irányú skálázási mennyiség. Az effektus megszorozza a szélességet az X értékkel és a magasságot az Y értékkel. Ez a tulajdonság egy D2D1_VECTOR_2F definiálva: (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}. |
InterpolationMode. D2D1_BITMAPSOURCE_PROP_INTERPOLATION_MODE |
A kép méretezéséhez használt interpolációs mód. További információért lásd interpolációs módokat. Ha a mód letiltja a mipmap-ot, akkor a BitmapSouce gyorsítótárazza a képet a Méretezés és az EnableDPICorrection tulajdonságai által meghatározott felbontásban. A típus D2D1_BITMAPSOURCE_INTERPOLATION_MODE. Az alapértelmezett érték a D2D1_BITMAPSOURCE_INTERPOLATION_MODE_LINEAR. |
EnableDPICorrection D2D1_BITMAPSOURCE_PROP_ENABLE_DPI_CORRECTION |
Ha igaz értékre állítja ezt be, az effektus skálázza a bemeneti lemezképet, hogy az IWICBitmapSource által jelentett DPI-t az eszközkörnyezet DPI-jének alakítsa át. Az effektus az InterpolationMode tulajdonsággal beállított interpolációs módot használja. Ha ezt HAMIS értékre állítja, az effektus a kimeneti képhez 96,0 DPI-t használ. A típus BOOL. Az alapértelmezett érték HAMIS. |
AlphaMode D2D1_BITMAPSOURCE_PROP_ALPHA_MODE |
A kimenet alfamódja. Ez lehet előre meghatározott vagy egyenes. További információért lásd Alfa módokat. A típus D2D1_BITMAPSOURCE_ALPHA_MODE. Az alapértelmezett érték a D2D1_BITMAPSOURCE_ALPHA_MODE_PREMULTIPLIED. |
Tájékozódás D2D1_BITMAPSOURCE_PROP_ORIENTATION |
A képen végrehajtandó tükrözési és/vagy forgatási művelet. További információt a Tájolás című témakörben talál. A típus D2D1_BITMAPSOURCE_ORIENTATION. Az alapértelmezett érték a D2D1_BITMAPSOURCE_ORIENTATION_DEFAULT. |
Interpolációs módok
Az effektus interpolálja ezt a módot, amikor skáláz egy képet, vagy ha kijavítja a DPI-t. A effektus által használt interpolációs módokat a CPU számítja ki, nem a GPU.
Név | Leírás |
---|---|
D2D1_BITMAPSOURCE_INTERPOLATION_MODE_NEAREST_NEIGHBOR | Mintákat a legközelebbi egy pontot, és használja azt. Nem hoz létre mipmap-et. |
D2D1_BITMAPSOURCE_INTERPOLATION_MODE_LINEAR | Négypontos mintát és lineáris interpolációt használ. Nem hoz létre mipmap-et. |
D2D1_BITMAPSOURCE_INTERPOLATION_MODE_CUBIC | 16 köbélmintát használ az interpolációhoz. Nem hoz létre mipmap-et. |
D2D1_BITMAPSOURCE_INTERPOLATION_MODE_FANT | A WIC-fant interpolációt használja, ugyanúgy, mint a IWICBitmapScaler felületet. Nem hoz létre mipmap-et. |
D2D1_BITMAPSOURCE_INTERPOLATION_MODE_MIPMAP_LINEAR | Mipmap-láncot hoz létre a rendszermemória kétvonalas interpolációval. Minden mipmap esetében az effektus a 0,5 legközelebbi többszörösére skálázható kétvonalas interpolációval, majd lineáris interpolációval skálázza a fennmaradó mennyiséget. |
Tájékozódás
A Tájolás tulajdonság egy képbe ágyazott EXIF tájolásjelző alkalmazásához használható.
Név | Leírás |
---|---|
D2D1_BITMAPSOURCE_ORIENTATION_DEFAULT | Alapértelmezett. Az effektus nem módosítja a bemenet tájolását. |
D2D1_BITMAPSOURCE_ORIENTATION_FLIP_HORIZONTAL | Vízszintesen tükrözi a képet. |
D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180 | A kép elforgatása az óramutató járásával megegyező irányban 180 fokkal. |
D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL | Elforgatja a képet az óramutató járásával megegyező irányban 180 fokkal, és vízszintesen megfordítja. |
D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL | Elforgatja a képet az óramutató járásával megegyező irányban 270 fokkal, és vízszintesen megfordítja. |
D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90 | A kép elforgatása az óramutató járásával megegyező irányban 90 fokkal. |
D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL | Elforgatja a képet az óramutató járásával megegyező irányban 90 fokkal, és vízszintesen megfordítja. |
D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270 | A kép elforgatása az óramutató járásával megegyező irányban 270 fokkal. |
Ez a kódrészlet bemutatja, hogyan konvertálható a propkey.h-ban definiált EXIF-tájolási értékekből D2D1_BITMAPSOURCE_ORIENTATION értékekké.
#include <propkey.h>
#include <d2d1effects.h>
D2D1_BITMAPSOURCE_ORIENTATION GetBitmapSourceOrientation(unsigned short PhotoOrientation)
{
switch (PhotoOrientation)
{
case PHOTO_ORIENTATION_NORMAL:
return D2D1_BITMAPSOURCE_ORIENTATION_DEFAULT;
case PHOTO_ORIENTATION_FLIPHORIZONTAL:
return D2D1_BITMAPSOURCE_ORIENTATION_FLIP_HORIZONTAL;
case PHOTO_ORIENTATION_ROTATE180:
return D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180;
case PHOTO_ORIENTATION_FLIPVERTICAL:
return D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL;
case PHOTO_ORIENTATION_TRANSPOSE:
return D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL;
case PHOTO_ORIENTATION_ROTATE270:
return D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90;
case PHOTO_ORIENTATION_TRANSVERSE:
return D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL;
case PHOTO_ORIENTATION_ROTATE90:
return D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270;
default:
return D2D1_BITMAPSOURCE_ORIENTATION_DEFAULT;
}
}
Alfa mód
Név | Leírás |
---|---|
D2D1_BITMAPSOURCE_ALPHA_MODE_PREMULTIPLIED | Az effektus kimenete előre meghatározott alfa-t használ. |
D2D1_BITMAPSOURCE_ALPHA_MODE_STRAIGHT | Az effektus kimenete egyenes alfát használ. |
Megjegyzések
A wic és Direct2D együttes használatakor a teljesítmény optimalizálásához IWICFormatConverter kell használnia, hogy az alkalmazás forgatókönyve és a kép natív pontossága alapján a megfelelő képpontformátumra konvertáljon.
A legtöbb esetben vagy az alkalmazás Direct2D folyamat csak csatornánként 8 bitet (bpc) igényel, vagy a kép csak 8 bites pontosságot biztosít, ezért át kell alakítania GUID_WICPixelFormat32bppPBGRA. Ha azonban ki szeretné használni a kép által biztosított extra pontosságot (például egy 8 bitesnél nagyobb pontosságú JPEG-XR vagy TIFF-t), akkor RGBA-alapú képpontformátumot kell használnia. Az alábbi táblázat további részleteket tartalmaz.
Kívánt pontosság | A kép natív pontossága | Ajánlott képpontformátum |
---|---|---|
Csatornánként 8 bit | <= csatornánként 8 bit | GUID_WICPixelFormat32bppPBGRA |
A lehető legnagyobb | <= csatornánként 8 bit | GUID_WICPixelFormat32bppPBGRA |
A lehető legnagyobb | csatornánként 8 bit > | RGBA-csatorna sorrendje, előre meghatározott alfa |
Mivel számos képformátum több pontossági szintet is támogat, a IWICBitmapSource::GetPixelFormat használatával szerezze be a kép natív képpontformátumát, majd IWICPixelFormatInfo segítségével állapítsa meg, hogy csatornánként hány bit érhető el ehhez a formátumhoz. Azt is vegye figyelembe, hogy nem minden hardver támogatja a nagy pontosságú képpontformátumokat. Ezekben az esetekben előfordulhat, hogy az alkalmazásnak vissza kell esnie a WARP-eszközre a nagy pontosság támogatása érdekében.
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 |