A dekódolás áttekintése
A témakör bemutatja a bitkép-dekódert, amely egy alapvető Windows Képalkotó összetevő (WIC) kodekösszetevő, amellyel képfájlokat dekódolhat egy streamből.
Ez a témakör a következő szakaszokat tartalmazza.
- Bevezetés
- natív bittérkép-dekóderek
- Bitmap dekóder létrehozása
- dekóder bővíthetősége
- Kapcsolódó témakörök
Bevezetés
A bitkép-dekóderek a digitális képek külső tárolójaként tekinthetők meg, és hozzáférést biztosítanak a globális tulajdonságokhoz és képkeretekhez. Egyes képformátumok támogatják a globális miniatűröket, előnézeteket, színkörnyezeteket vagy metaadatokat, míg mások csak a keret szintjén biztosítják ezeket a tulajdonságokat. Vegye figyelembe azonban, hogy a szabványos képformátumok közül sok nem támogatja ezeket a globális tulajdonságokat. Ezért a WIC által biztosított natív kodek-implementációk többsége nem támogatja ezeknek a globális tulajdonságoknak a többségét. A globális tulajdonságtámogatással kapcsolatos információkért tekintse meg a témakör natív bittérkép-dekódoló szakaszának táblázatát.
A WIC-ben a bittérkép-dekódereket az IWICBitmapDecoder interfész képviseli, és hozzáférést biztosít a bitkép ezen globális tulajdonságaihoz, és ami még fontosabb, a benne található keretekhez. Az IWICBitmapFrameDecode interfész egy-egy bitképkeretet jelöl, és a Bitképforrások áttekintésecímű cikk ismerteti részletesen.
Natív Bitmap-dekódolók
A WIC a IWICBitmapDecoder felületének számos natív implementációját biztosítja a szabványos webes képformátumokhoz és a nagy dinamikus tartományú HD Photo formátumhoz. Az alábbi táblázat a rendelkezésre álló natív dekódereket, az osztályazonosító nevét és a globális tulajdonságok támogatását sorolja fel. Bár előfordulhat, hogy egy szolgáltatás globális szinten nem támogatja a miniatűrök tulajdonságát, a képformátum az egyes keret szintjén is támogathatja az ilyen tulajdonságokat.
Képformátum | CLSID-név | Miniatűrök | Előzetesek | Színkörnyezetek | Metaadatok |
---|---|---|---|---|---|
BMP | CLSID_WICBmpDecoder | Nem | Nem | Nem | Nem |
GIF | CLSID_WICGifDecoder | Nem | Nem | Nem | Igen |
ICO | CLSID_WICIcoDecoder | Nem | Nem | Nem | Nem |
JPEG | CLSID_WICJpegDecoder | Nem | Nem | Nem | Nem |
PNG | CLSID_WICPngDecoder | Nem | Nem | Nem | Nem |
ÖSSZETŰZÉS | CLSID_WICTiffDecoder | Nem | Nem | Nem | Nem |
HD fénykép | CLSID_WICWmpDecoder | Nem | Igen | Nem | Nem |
Bitkép-dekóder létrehozása
Ha wic használatával szeretne dekódolni egy képet, először létre kell hoznia a IWICBitmapDecoder egy példányát a célzott képformátumhoz. A dekóderpéldány lehetővé teszi a globális tulajdonságok és metaadatok elérését, amennyiben ez támogatott, valamint a képkeretekét is. A WIC képalkotó gyár, IWICImagingFactory, számos módszert kínál a bitkép-dekóderek létrehozásához. A bittérkép-dekóderek létrehozásához a következő gyári metódusok érhetők el.
Az alábbi kód bemutatja, hogyan hozhat létre bitkép-dekódert egy képfájlnév használatával, és hogyan kérdezheti le a kép első keretét.
// Create a decoder
IWICBitmapDecoder *pDecoder = NULL;
hr = m_pIWICFactory->CreateDecoderFromFilename(
szFileName, // Image to be decoded
NULL, // Do not prefer a particular vendor
GENERIC_READ, // Desired read access to the file
WICDecodeMetadataCacheOnDemand, // Cache metadata when needed
&pDecoder // Pointer to the decoder
);
// Retrieve the first frame of the image from the decoder
IWICBitmapFrameDecode *pFrame = NULL;
if (SUCCEEDED(hr))
{
hr = pDecoder->GetFrame(0, &pFrame);
}
Dekóder bővíthetősége
A WIC egyik alapvető funkciója egy bővíthetőségi keretrendszer, amely lehetővé teszi, hogy a kodekfejlesztők saját képkodekeket fejlesszenek ki, és ugyanazt a platformtámogatást kapják, mint a képkodek natív implementációi. A rendszer minden képfeldolgozáshoz egyetlen, konzisztens illesztőkészletet használ, a képformátumtól függetlenül. A WIC-t használó alkalmazások automatikusan támogatják az új képformátumokat, amint a kodek telepítve van. A kodekfejlesztéssel kapcsolatos további információkért tekintse meg a komponensfejlesztésitémaköreit. További információ a dekóderek fejlesztéséről: WIC-Enabled Dekóderimplementálása.
Kapcsolódó témakörök