IWICBitmapFrameDecode Uygulamasını Gerçekleştirme
IWICBitmapFrameDecode
IWICBitmapFrameDecode, gerçek görüntü bitlerine erişim sağlayan çerçeve düzeyinde arabirimdir. Bu arabirimi çerçeve düzeyinde kod çözme sınıfınıza uygularsınız. IWICBitmapSourcetüretildiğinden, IWICBitmapFrameDecode uygulamanız IWICBitmapSource yöntemlerinin bir uygulamasını içerir. IWICBitmapFrameDecode üzerindeki ek yöntemler, çerçeve düzeyindeki küçük resme, resmin renk bağlamlarına ve çerçevenin meta veri sorgu okuyucusuna erişim sağlar.
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 );
}
- GetThumbnail
- GetColorContexts
- GetMetadataQueryReader
- GetSize, GetPixelFormat ve GetResolution
- PixelKopyala
- CopyPalette
GetThumbnail
GetThumbnail geçerli çerçevenin küçük resmini döndürür. Performans nedenleriyle küçük resimler en yaygın olarak JPEG biçiminde kodlanır. Kod çözücüdeki Önizleme'de olduğu gibi, küçük resimler için kendi JPEG kod çözücünüzü sağlamanız gerekmez veya önerilmez. Bunun yerine, Windows Imaging Bileşeni (WIC) tarafından sağlanan JPEG kod çözücüsne temsilci atamanız gerekir.
Küçük resimler hakkında daha fazla bilgi için IWICBitmapFrameEncode uygulamakonusunda SetThumbnail yöntemine bakın.
GetColorContexts
getColorContexts, bu çerçevedeki resimle ilişkili geçerli renk bağlamlarını (renk profilleri olarak da bilinir) döndürür. Çoğu durumda, bu yalnızca bir olacaktır, ancak iki veya nadiren daha fazla olduğu durumlar olabilir. Çağıran, bir veya daha fazla IWICColorContextnesnesigeçirir ve cCount parametresini kaç tane geçirdiğini gösterecek şekilde ayarlar. Bu yöntem, IWICColorContext nesnelerini resimle ilişkilendirilmiş renk profilleri için gerçek renk bağlam verileriyle doldurur. pcActualCount parametresini, döndürebileceğiniz sayıdan büyük olsa bile görüntüyle ilişkili gerçek renk bağlamı sayısına ayarlayın. (Çağıran tarafından geçirilen IWICColorContext nesne sayısından daha fazla renk bağlamının kullanılabildiği durumlarda, çağırana bir veya daha fazla başka seçenek olduğunu bildirir.)
GetMetadataQueryReader
GetMetadataQueryReader, bir uygulamanın görüntü çerçevesinden meta verileri almak için kullanabileceği bir IWICMetadataQueryReader döndürür. Bu arabirim bir meta veri işleyicisi tarafından uygulanır ve uygulamanın belirli bir meta veri biçimine ait belirli meta veri özelliklerini sorgulamasına olanak tanır. Daha fazla bilgi için bkz. Implementing IWICMetadataBlockReader.
IWICMetadataQueryReaderörneği oluşturmak için, IWICComponentFactoryüzerinde CreateQueryReaderFromBlockReader çağrısını yapın.
IWICMetadataQueryReader* pQueryReader = NULL;
HRESULT hr;
hr = m_pComponentFactory->CreateQueryReaderFromBlockReader(
static_cast<IWICMetadataBlockWriter*>(this),
&pQueryReader);
GetSize, GetPixelFormat ve GetResolution
GetSize, GetPixelFormatve GetResolutionaçıklayıcıdır ve görüntünün istenen özelliklerini döndürür.
CopyPixels
CopyPixels, bir uygulamanın bellekte görüntüye veya yazıcıya işlenebilen bir bit eşlem oluşturmak istediğinde çağıracağı yöntemdir. Bu, görüntü bitlerinin gerçek kodunu çözmeyi sağlayan yöntemdir. Parametreler, belleğe kopyalanacak kaynak görüntüdeki ilgi alanını temsil eden bir dikdörtgendir; bir tarama satırındaki bayt sayısını belirten adım; uygulama tarafından ayrılan bellekteki arabelleğin boyutu; ve istenen görüntü bitlerinin kopyalanması gereken arabelleğe yönelik bir işaretçi. (Potansiyel arabellek taşmalarının güvenlik açıklarına yol açmasını önlemek için, cbBufferSize parametresinin belirttiği kadar görüntü verisini arabelleğe kopyaladığınızdan emin olun.)
CopyPalette
Yalnızca dizine alınan piksel biçimlerine sahip codec'ler CopyPalette yöntemini uygulamalıdır. Bir görüntü dizinli biçim kullanıyorsa, görüntüde kullanılan renk paletini döndürmek için bu yöntemi kullanın. Codec'iniz dizinli bir biçime sahip değilse WINCODEC_ERR_PALETTEUNAVAILABLE olarak döndürün.
İlgili konular
-
Başvuru
-
Kavramsal
-
IWICMetadataBlockReader Uygulama
-
WIC-Enabled CODEC Nasıl Yazılır