Az IWICBitmapFrameDecode implementálása
IWICBitmapFrameDecode
IWICBitmapFrameDecode a keretszintű felület, amely hozzáférést biztosít a tényleges képbitekhez. Ezt a felületet a keretszintű dekódolási osztályban implementálhatja. Mivel az IWICBitmapSourceszármazik, az IWICBitmapFrameDecode implementálása magában foglalja az IWICBitmapSource metódusok implementálását. Az IWICBitmapFrameDecode további metódusai hozzáférést biztosítanak a keretszintű miniatűrhöz, a kép bármilyen színkörnyezetéhez és a képhez tartozó metaadat-lekérdezésolvasóhoz.
interface IWICBitmapFrameDecode : IWICBitmapSource
{
// Required methods
HRESULT GetThumbnail ( IWICBitmapSource **ppIThumbnail );
HRESULT GetColorContexts ( UINT cCount,
IWICColorContext **ppIColorContexts, UINT *pcActualCount );
HRESULT GetMetadataQueryReader ( IWICMetadataQueryReader **ppIMetadataQueryReader );
// Methods inherited from IWICBitmapSource
HRESULT GetSize ( UINT *puiWidth, UINT *puiHeight );
HRESULT GetPixelFormat ( WICPixelFormatGUID *pPixelFormat );
HRESULT GetResolution ( double *pDpiX, double *pDpiY );
HRESULT CopyPixels ( const WICRect *prc,
UINT cbStride,
UINT cbBufferSize,
BYTE *pbBuffer );
// Optional method
HRESULT CopyPalette ( IWICPalette *pIPalette );
}
- Bélyegkép Lekérése
- GetColorContexts
- GetMetadataQueryReader
- GetSize, GetPixelFormat és GetResolution
- CopyPixels
- MásolásPaletta
GetThumbnail
GetThumbnail az aktuális kocka miniatűrjét adja vissza. Teljesítménybeli okokból a miniatűrök leggyakrabban JPEG formátumban vannak kódolva. A dekóder előzetes verziójához hasonlóan nem szükséges vagy ajánlott saját JPEG dekódert biztosítani a miniatűrökhöz. Ehelyett delegálnia kell a Windows Képalkotó összetevő (WIC) által biztosított JPEG-dekódert.
További információért a miniatűrökről lásd a SetThumbnail metódust a Implementing IWICBitmapFrameEncodedokumentumban.
GetColorContexts
GetColorContexts a képhez tartozó érvényes színkörnyezeteket (más néven színprofilokat) adja vissza. A legtöbb esetben ez csak egy lesz, de lehetnek olyan esetek, amikor kettő vagy ritkán több is van. A hívó egy vagy több IWICColorContext objektumot ad át, és beállítja a cCount paramétert, hogy jelezze, hányat ad át. Ez a metódus feltölti az IWICColorContext objektumokat a képhez társított színprofilok tényleges színösszeállítási adataival. Állítsa a pcActualCount paramétert a képhez társított színkörnyezetek tényleges számára, még akkor is, ha ez nagyobb, mint a visszaadható szám. (Abban az esetben, ha több színkörnyezet érhető el, mint a hívó által átadott IWICColorContext objektumok száma, ez azt jelzi a hívónak, hogy van egy vagy több elérhető.)
GetMetadataQueryReader
GetMetadataQueryReader egy IWICMetadataQueryReader ad vissza, amellyel egy alkalmazás metaadatokat kérhet le a képkeretből. Ezt a felületet egy metaadat-kezelő valósítja meg, és lehetővé teszi, hogy az alkalmazás lekérdezhesse az adott metaadat-formátumhoz tartozó adott metaadat-tulajdonságokat. További információért lásd: Implementing IWICMetadataBlockReader.
Egy IWICMetadataQueryReaderpéldányosításához hívja meg CreateQueryReaderFromBlockReader a IWICComponentFactory.
IWICMetadataQueryReader* pQueryReader = NULL;
HRESULT hr;
hr = m_pComponentFactory->CreateQueryReaderFromBlockReader(
static_cast<IWICMetadataBlockWriter*>(this),
&pQueryReader);
GetSize, GetPixelFormat és GetResolution
GetSize, GetPixelFormatés GetResolution magától értetődőek, és visszaadják a kép kért tulajdonságait.
CopyPixels
CopyPixels az a metódus, amellyel az alkalmazás meghívja, ha olyan bitképet szeretne létrehozni a memóriában, amely megjeleníthető a kijelzőn vagy a nyomtatón. Ez az a módszer, amely elvégzi a képbitek tényleges dekódolását. A paraméterek közé tartozik egy téglalap, amely a forráskép érdekes régióját jelöli, amit a memóriába kell másolni; a lépésszám, amely megadja a bájtok számát egy vizsgálati sorban; a puffer mérete a memóriában, amelyet az alkalmazás lefoglalt; és egy mutató arra a pufferre, amelybe a kért képbiteket ki kell másolni. (Annak érdekében, hogy a lehetséges puffertúlcsordulások ne vezessenek be biztonsági réseket, ügyeljen arra, hogy csak annyi képadatot másoljon a pufferbe, amennyit a cbBufferSize paraméter megad.)
CopyPalette
Csak az indexelt képpontformátumú kodekek implementálják a CopyPalette metódust. Ha egy kép indexelt formátumot használ, ezzel a módszerrel adja vissza a képen használt színek palettáját. Ha a kodek nem rendelkezik indexelt formátummal, adja vissza WINCODEC_ERR_PALETTEUNAVAILABLE.
Kapcsolódó témakörök
-
Referencia
-
fogalmi
-
IWICBitmapSource implementálása
-
IWICMetadataBlockReader implementálása
-
WIC-Enabled CODEC- írása