Menerapkan IWICMetadataBlockWriter
IWICMetadataBlockWriter
- InitializeFromBlockReader
- DapatkanPenulisMenurutIndeks
- AddWriter
- SetWriterByIndex
- RemoveWriterByIndex
Kelas pengodean tingkat bingkai mengimplementasikan antarmuka ini untuk mengekspos semua blok metadata dan meminta penulis metadata yang sesuai untuk setiap blok. Jika format gambar Anda mendukung metadata global, di luar bingkai individual apa pun, Anda juga harus menerapkan antarmuka ini pada kelas encoder tingkat kontainer. Untuk pembahasan lebih mendetail tentang handler metadata, lihat bagian IWICMetadataBlockReader di bagian tentang Implementasi WIC-Enabled Decoder.
interface IWICMetadataBlockWriter : IWICMetadataBlockReader
{
// All methods required
HRESULT InitializeFromBlockReader ( IWICMetadataBlockReader *pIMDBlockReader );
HRESULT GetWriterByIndex ( UINT nIndex, IWICMetadataWriter **ppIMetadataWriter );
HRESULT AddWriter (IWICMetadataWriter *pIMetadataWriter );
HRESULT SetWriterByIndex ( UINT nIndex, IWICMetadataWriter *pIMetadataWriter );
HRESULT RemoveWriterByIndex ( UINT nIndex );
}
InitializeFromBlockReader
InitializeFromBlockReader menggunakanIWICMetadataBlockReader untuk menginisialisasi penulis blok. Anda bisa mendapatkan IWICMetadataBlockReader dari dekoder yang mendekode gambar.
UINT blockCount = 0;
IWICMetadataReader* pMetadataReader = NULL;
IWICMetadataWriter** ppMetadataWriter = NULL;
HRESULT hr;
hr = m_pBlockReader->GetCount(&blockCount);
ppMetadataWriter = IWICMetadataWriter*[blockCount];
for (UINT x=0; x < blockCount; x++)
{
hr = m_pBlockReader->GetReaderByIndex(&pMetadataReader);
hr = m_pComponentFactory->CreateMetadataWriterFromReader(
pMetadataReader, NULL, &ppMetadataWriter[x]);
}
Karena menginisialisasi IWICMetadataBlockWriter dengan IWICMetadataBlockReader menginisiasi penulis metadata untuk setiap pembaca metadata yang diekspos oleh objek IWICMetadataBlockReader, aplikasi tidak harus secara eksplisit meminta penulis untuk setiap blok metadata.
GetWriterByIndex
GetWriterByIndex mengembalikan objekIWICMetadataWriter untuk blok metadata ke-n, di mana n adalah nilai yang diteruskan dalam parameter nIndex. Jika tidak ada penulis metadata yang terdaftar yang dapat menangani jenis metadata di blok ke-n, pabrik komponen akan mengembalikan Handler Metadata Tidak Diketahui, yang akan memperlakukan blok metadata sebagai objek besar biner (BLOB). Ini akan menserialisasikannya sebagai aliran bit tanpa mencoba mengurainya.
Tambahkan Penulis
AddWriter memungkinkan penelepon untuk menambahkan penulis metadata baru. Ini diperlukan jika aplikasi ingin menambahkan metadata dengan format yang berbeda dari blok metadata yang ada. Misalnya, aplikasi mungkin ingin menambahkan beberapa metadata XMP. Jika tidak ada blok metadata XMP yang ada, aplikasi harus membuat instans penulis metadata XMP dan menggunakan metode AddWriter untuk menyertakannya dalam kumpulan penulis metadata.
SetWriterByIndex
SetWriterByIndex digunakan untuk menambahkan penulis metadata pada indeks tertentu dalam koleksi. Jika penulis metadata saat ini ada di indeks tersebut, penulis metadata baru harus menggantinya.
HapusPenulisBerdasarkanIndeks (RemoveWriterByIndex)
RemoveWriterByIndex digunakan untuk menghapus penulis metadata dari koleksi.
Topik terkait
-
Konseptual