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


WIC-Enabled Kódoló implementálása

Bevezetés

A Windows Képalkotó összetevő (WIC) kódolójának implementálásához két osztályt kell írni, ahogyan az a WIC-dekódoló implementálásához is igaz. Az osztályok felületei közvetlenül megfelelnek a Kódoló feladatainak, amelyeket a Windows képalkotó összetevő működése című dokumentum kódolási szakaszában vázoltak fel.

Az egyik osztály tárolószintű szolgáltatásokat biztosít, és kezeli a tárolón belüli egyes képkeretek szerializálását. Ez az osztály implementálja az IWICBitmapEncoder felületet. Ha a képformátum támogatja a tárolószintű metaadatokat, az osztály IWICMetadataBlockWriter felületét is implementálnia kell.

A másik osztály keretszintű szolgáltatásokat biztosít, és elvégzi a lemezkép bitjeinek tényleges kódolását a tároló minden egyes keretéhez. Emellett végigvezeti az egyes keretek metaadatblokkjait, és kéri a megfelelő metaadat-írókat a blokkok szerializálására. Ez az osztály implementálja az IWICBitmapFrameEncode felületet, valamint az IWICMetadataBlockWriter felületet. Ennek az osztálynak rendelkeznie kell egy IStream-taggal, amelyet a tárolószintű osztály inicializál a példányosításkor, és amelybe a Commit metódus szerializálja a kockaadatokat.

Bizonyos esetekben, például a nyers formátumok esetében előfordulhat, hogy a kodek készítője nem szeretné, hogy az alkalmazások kódolni vagy újrakódolni tudják a nyers formátumot, mert a nyers fájl célja, hogy pontosan a kamerából származó érzékelőadatokat tartalmazza. Azokban az esetekben, amikor a kodek szerzője nem szeretné engedélyezni a kódolást, a metaadatok hozzáadásának engedélyezéséhez még szükség van egy alapszintű kódoló implementálására. Ebben az esetben a kódolónak csak a metaadatok írásához szükséges módszereket kell támogatnia, és a dekóderből érintetlenül másolhatja a képbiteket.

referencia

IWICBitmapEncoder

fogalmi

Az IWICDevelopRaw implementációja

Kódoló interfészek

Hogyan írjunk egy WIC-Enabled CODEC--et

Windows képalkotó összetevő áttekintése