IWICFastMetadataEncoder 接口 (wincodec.h)

公开用于就地元数据编辑的方法。 使用快速元数据编码器可以向图像添加和删除元数据,而无需对图像进行完全重新编码。

继承

IWICFastMetadataEncoder 接口继承自 IUnknown 接口。 IWICFastMetadataEncoder 也有以下类型的成员:

方法

IWICFastMetadataEncoder 接口具有这些方法。

 
IWICFastMetadataEncoder::Commit

完成对图像流的元数据更改。
IWICFastMetadataEncoder::GetMetadataQueryWriter

检索元数据查询编写器以快速进行元数据编码。

注解

必须使用 WICDecodeMetadataCacheOnDemand 值创建解码器,才能执行就地元数据更新。 使用 WICDecodeMetadataCacheOnLoad 选项会导致解码器释放执行元数据更新所需的文件流。

并非所有元数据格式都支持快速元数据编码。 支持元数据的本机元数据处理程序是 IFD、Exif、XMP 和 GPS。

如果快速元数据编码器失败,则需要对图像进行完全重新编码才能添加元数据。

示例

下面演示如何从图像帧获取快速元数据编码器,并使用其查询编写器编写元数据项。

IWICFastMetadataEncoder *pFME = NULL;
IWICMetadataQueryWriter *pFMEQW = NULL;

hr = pFactory->CreateFastMetadataEncoderFromFrameDecode(pFrameDecode, &pFME);

if (SUCCEEDED(hr))
{
 	hr = pFME->GetMetadataQueryWriter(&pFMEQW);
}

if (SUCCEEDED(hr))
{
	 // Add additional metadata
 	PROPVARIANT value;

	 PropVariantInit(&value);

 	value.vt = VT_UI2;
	 value.uiVal = 99;
 	hr = pFMEQW->SetMetadataByName(L"/app1/ifd/{ushort=18249}", &value);

 	PropVariantClear(&value);
}

if (SUCCEEDED(hr))
{
	 hr = pFME->Commit();
}

要求

   
最低受支持的客户端 Windows XP SP2,Windows Vista [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 wincodec.h