Menerapkan IWICBitmapFrameDecode
IWICBitmapFrameDecode
IWICBitmapFrameDecode adalah antarmuka tingkat bingkai yang menyediakan akses ke bit gambar aktual. Anda menerapkan antarmuka ini pada kelas decoding tingkat bingkai Anda. Karena berasal dari IWICBitmapSource, implementasi IWICBitmapFrameDecode Anda akan mencakup implementasi metode IWICBitmapSource . Metode tambahan pada IWICBitmapFrameDecode menyediakan akses ke gambar mini tingkat bingkai, konteks warna apa pun untuk gambar, dan pembaca kueri metadata untuk bingkai.
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, dan GetResolution
- CopyPixels
- CopyPalette
GetThumbnail
GetThumbnail mengembalikan gambar mini untuk bingkai saat ini. Untuk alasan performa, gambar mini paling umum dikodekan dalam format JPEG. Sama seperti Pratinjau pada dekoder, tidak perlu atau disarankan untuk menyediakan dekoder JPEG Anda sendiri untuk gambar mini. Sebagai gantinya, Anda harus mendelegasikan ke dekoder JPEG yang disediakan oleh Komponen Pencitraan Windows (WIC).
Untuk informasi selengkapnya tentang gambar mini, lihat metode SetThumbnail tentang Menerapkan IWICBitmapFrameEncode.
GetColorContexts
GetColorContexts mengembalikan konteks warna yang valid (juga dikenal sebagai profil warna) yang terkait dengan gambar dalam bingkai ini. Dalam kebanyakan kasus, ini hanya akan menjadi satu, tetapi mungkin ada kasus di mana ada dua atau, jarang, lebih. Pemanggil akan meneruskan satu atau beberapa objek IWICColorContext , mengatur parameter cCount untuk menunjukkan berapa banyak yang mereka lewati. Metode ini mengisi objek IWICColorContext dengan data konteks warna aktual untuk profil warna yang terkait dengan gambar. Atur parameter pcActualCount ke jumlah konteks warna aktual yang terkait dengan gambar, bahkan jika ini lebih besar dari angka yang dapat Anda kembalikan. (Dalam kasus di mana lebih banyak konteks warna tersedia daripada jumlah objek IWICColorContext yang diteruskan oleh pemanggil, ini memberi tahu pemanggil ada satu atau beberapa objek lain yang tersedia.)
GetMetadataQueryReader
GetMetadataQueryReader mengembalikan IWICMetadataQueryReader yang dapat digunakan aplikasi untuk mengambil metadata dari bingkai gambar. Antarmuka ini diimplementasikan oleh handler metadata, dan memungkinkan aplikasi untuk mengkueri properti metadata tertentu milik format metadata tertentu. Untuk informasi selengkapnya, lihat Menerapkan IWICMetadataBlockReader.
Untuk membuat instans IWICMetadataQueryReader, panggil CreateQueryReaderFromBlockReader di IWICComponentFactory.
IWICMetadataQueryReader* pQueryReader = NULL;
HRESULT hr;
hr = m_pComponentFactory->CreateQueryReaderFromBlockReader(
static_cast<IWICMetadataBlockWriter*>(this),
&pQueryReader);
GetSize, GetPixelFormat, dan GetResolution
GetSize, GetPixelFormat, dan GetResolution adalah penjelasan mandiri, dan mengembalikan properti gambar yang diminta.
CopyPixels
CopyPixels adalah metode yang dipanggil aplikasi ketika ingin membuat bitmap dalam memori yang dapat dirender ke tampilan atau printer. Ini adalah metode yang melakukan decoding aktual dari bit gambar. Parameter adalah persegi panjang, yang mewakili wilayah yang menarik dalam gambar sumber untuk disalin ke dalam memori; langkah, yang menentukan jumlah byte dalam satu baris pemindaian; ukuran buffer dalam memori yang telah dialokasikan oleh aplikasi; dan penunjuk ke buffer tempat bit gambar yang diminta harus disalin. (Untuk mencegah potensi overrun buffer dari memperkenalkan kerentanan keamanan, pastikan untuk menyalin hanya sebanyak mungkin data gambar ke dalam buffer seperti yang ditentukan parameter cbBufferSize .)
CopyPalette
Hanya codec yang memiliki format piksel terindeks yang harus menerapkan metode CopyPalette . Jika gambar menggunakan format terindeks, gunakan metode ini untuk mengembalikan palet warna yang digunakan dalam gambar. Jika codec Anda tidak memiliki format terindeks, kembalikan WINCODEC_ERR_PALETTEUNAVAILABLE.
Topik terkait
-
Referensi
-
Konseptual