Implementazione di IWICBitmapFrameDecode

IWICBitmapFrameDecode

IWICBitmapFrameDecode è l'interfaccia a livello di frame che fornisce l'accesso ai bit di immagine effettivi. Questa interfaccia viene implementata nella classe di decodifica a livello di frame. Poiché deriva da IWICBitmapSource, l'implementazione di IWICBitmapFrameDecode includerà un'implementazione dei metodi IWICBitmapSource . I metodi aggiuntivi in IWICBitmapFrameDecode forniscono l'accesso all'anteprima a livello di frame, a qualsiasi contesto di colore per l'immagine e al lettore di query dei metadati per il frame.

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 restituisce l'anteprima per la cornice corrente. Per motivi di prestazioni, le anteprime sono più comunemente codificate in un formato JPEG. Come per l'anteprima nel decodificatore, non è necessario o consigliato fornire il proprio decodificatore JPEG per le anteprime. È invece necessario delegare al decodificatore JPEG fornito da Windows Imaging Component (WIC).

Per altre informazioni sulle anteprime, vedere il metodo SetThumbnailsull'implementazione di IWICBitmapFrameEncode.

GetColorContexts

GetColorContexts restituisce i contesti di colore validi (noti anche come profili di colore) associati all'immagine in questa cornice. Nella maggior parte dei casi, questo sarà solo uno, ma potrebbero esserci casi in cui ci sono due o, raramente, più. Il chiamante passerà uno o più oggetti IWICColorContext , impostando il parametro cCount per indicare quanti passano. Questo metodo popola gli oggetti IWICColorContext con i dati del contesto dei colori effettivi per i profili di colore associati all'immagine. Impostare il parametro pcActualCount sul numero effettivo di contesti di colore associati all'immagine, anche se è maggiore del numero che è possibile restituire. Nel caso in cui siano disponibili più contesti di colore rispetto al numero di oggetti IWICColorContext passati dal chiamante, questo indica al chiamante che ci sono uno o più altri disponibili.

GetMetadataQueryReader

GetMetadataQueryReader restituisce un oggetto IWICMetadataQueryReader che un'applicazione può usare per recuperare i metadati dal frame di immagine. Questa interfaccia viene implementata da un gestore dei metadati e consente a un'applicazione di eseguire query per proprietà di metadati specifiche appartenenti a un formato di metadati specifico. Per altre informazioni, vedere Implementazione di IWICMetadataBlockReader.

Per creare un'istanza di IWICMetadataQueryReader, chiamare CreateQueryReaderFromBlockReader in IWICComponentFactory.

IWICMetadataQueryReader* pQueryReader = NULL;
HRESULT hr;

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

GetSize, GetPixelFormat e GetResolution

GetSize, GetPixelFormat e GetResolution sono auto-esplicative e restituiscono le proprietà richieste dell'immagine.

CopyPixels

CopyPixels è il metodo che un'applicazione chiama quando vuole creare una bitmap in memoria che può essere eseguito il rendering nella visualizzazione o nella stampante. Si tratta del metodo che esegue la decodifica effettiva dei bit dell'immagine. I parametri sono un rettangolo, che rappresenta l'area di interesse nell'immagine di origine da copiare in memoria; lo stride, che specifica il numero di byte in una riga di analisi; dimensione del buffer in memoria allocata dall'applicazione; e un puntatore al buffer in cui devono essere copiati i bit di immagine richiesti. Per impedire potenziali overrun del buffer di introdurre vulnerabilità di sicurezza, assicurarsi di copiare solo i dati dell'immagine nel buffer come specifica il parametro cbBufferSize .

CopyPalette

Solo i codec con formati pixel indicizzati devono implementare il metodo CopyPalette . Se un'immagine usa un formato indicizzato, usare questo metodo per restituire la tavolozza dei colori usati nell'immagine. Se il codec non ha un formato indicizzato, restituire WINCODEC_ERR_PALETTEUNAVAILABLE.

Riferimento

IWICBitmapSource

IWICBitmapDecoder

IWICBitmapFrameDecode

Informazioni concettuali

Implementazione di IWICBitmapSource

Implementazione di IWICMetadataBlockReader

Come scrivere un codec WIC-Enabled

Panoramica del componente Di creazione immagini di Windows