Megosztás a következőn keresztül:


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

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

ID2D1Effect