IWICBitmapFrameDecode 구현

IWICBitmapFrameDecode

IWICBitmapFrameDecode 는 실제 이미지 비트에 대한 액세스를 제공하는 프레임 수준 인터페이스입니다. 프레임 수준 디코딩 클래스에서 이 인터페이스를 구현합니다. IWICBitmapSource에서 파생되므로 IWICBitmapFrameDecode 구현에는 IWICBitmapSource 메서드의 구현이 포함됩니다. IWICBitmapFrameDecode의 추가 메서드는 프레임 수준 썸네일, 이미지의 모든 색 컨텍스트 및 프레임에 대한 메타데이터 쿼리 판독기 액세스 권한을 제공합니다.

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

GetThumbnail 은 현재 프레임의 썸네일을 반환합니다. 성능상의 이유로 썸네일은 가장 일반적으로 JPEG 형식으로 인코딩됩니다. 디코더의 미리 보기와 마찬가지로 썸네일에 고유한 JPEG 디코더를 제공할 필요가 없거나 권장되지 않습니다. 대신 WIC(Windows 이미징 구성 요소)에서 제공하는 JPEG 디코더에 위임해야 합니다.

썸네일에 대한 자세한 내용은 IWICBitmapFrameEncode 구현SetThumbnail 메서드를 참조하세요.

GetColorContexts

GetColorContexts는 이 프레임의 이미지와 연결된 유효한 색 컨텍스트(색 프로필이라고도 함)를 반환합니다. 대부분의 경우, 이것은 하나일 뿐이지만 두 개 또는 드물게 더 많은 경우가 있을 수 있습니다. 호출자는 하나 이상의 IWICColorContext 개체를 전달하여 전달되는 수를 나타내도록 cCount 매개 변수를 설정합니다. 이 메서드는 이미지와 연결된 색 프로필에 대한 실제 색 컨텍스트 데이터로 IWICColorContext 개체를 채웁니다. pcActualCount 매개 변수를 반환할 수 있는 수보다 크더라도 이미지와 연결된 실제 색 컨텍스트 수로 설정합니다. (호출자가 전달한 IWICColorContext 개체 수보다 더 많은 색 컨텍스트를 사용할 수 있는 경우 호출자에게 사용 가능한 다른 항목이 하나 이상 있음을 알 수 있습니다.)

GetMetadataQueryReader

GetMetadataQueryReader는 애플리케이션이 이미지 프레임에서 메타데이터를 검색하는 데 사용할 수 있는 IWICMetadataQueryReader 를 반환합니다. 이 인터페이스는 메타데이터 처리기에 의해 구현되며 애플리케이션이 특정 메타데이터 형식에 속하는 특정 메타데이터 속성을 쿼리할 수 있도록 합니다. 자세한 내용은 IWICMetadataBlockReader 구현을 참조하세요.

IWICMetadataQueryReader를 인스턴스화하려면 IWICComponentFactory에서 CreateQueryReaderFromBlockReader를 호출합니다.

IWICMetadataQueryReader* pQueryReader = NULL;
HRESULT hr;

hr = m_pComponentFactory->CreateQueryReaderFromBlockReader( 
  static_cast<IWICMetadataBlockWriter*>(this),
  &pQueryReader);

GetSize, GetPixelFormat 및 GetResolution

GetSize, GetPixelFormatGetResolution 은 자체 설명이며 이미지의 요청된 속성을 반환합니다.

CopyPixels

CopyPixels 는 디스플레이 또는 프린터로 렌더링할 수 있는 메모리에 비트맵을 만들려는 경우 애플리케이션이 호출하는 방법입니다. 이미지 비트의 실제 디코딩을 수행하는 메서드입니다. 매개 변수는 메모리에 복사할 원본 이미지의 관심 영역을 나타내는 사각형입니다. 한 스캔 줄의 바이트 수를 지정하는 stride; 애플리케이션에서 할당한 메모리의 버퍼 크기입니다. 및 요청된 이미지 비트를 복사해야 하는 버퍼에 대한 포인터입니다. 잠재적인 버퍼 오버런으로 인해 보안 취약성이 발생하지 않도록 하려면 cbBufferSize 매개 변수가 지정한 만큼의 이미지 데이터만 버퍼에 복사해야 합니다.

CopyPalette

인덱싱된 픽셀 형식이 있는 코덱만 CopyPalette 메서드를 구현해야 합니다. 이미지에서 인덱싱된 형식을 사용하는 경우 이 메서드를 사용하여 이미지에 사용되는 색상표를 반환합니다. 코덱에 인덱싱된 형식이 없으면 WINCODEC_ERR_PALETTEUNAVAILABLE 반환합니다.

참조

IWICBitmapSource

IWICBitmapDecoder

IWICBitmapFrameDecode

개념

IWICBitmapSource 구현

IWICMetadataBlockReader 구현

WIC-Enabled CODEC를 작성하는 방법

Windows 이미징 구성 요소 개요