다음을 통해 공유


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, GetPixelFormat, 및 GetResolution은 자체 설명으로, 이미지의 요청된 속성을 반환합니다.

픽셀 복사

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

CopyPalette

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

참조

IWICBitmapSource

IWICBitmapDecoder

IWICBitmapFrameDecode

개념

IWICBitmapSource 구현

IWICMetadataBlockReader 구현하기

WIC-Enabled CODEC 작성 방법

Windows 이미징 구성 요소 개요