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
- GetColorContexts
- GetMetadataQueryReader
- GetSize, GetPixelFormat e GetResolution
- CopyPixels
- CopyPalette
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.
Argomenti correlati
-
Riferimento
-
Informazioni concettuali