1

我浏览了以下文档:http: //msdn.microsoft.com/en-us/library/windows/desktop/ee719799 (v=vs.85).aspx

作为上下文,我正在尝试以 JPEG-XR 格式进行编码,并且我想模拟 GDI+ 的SetPropertyItem功能GetPropertyItem

我基本上有3个问题:

  1. 如果我想向 exif 标头添加自定义属性,正确的查询路径是什么?
  2. 我可以使用自定义 ID{ushort=1111}来识别它吗?如何验证 ID 是否已定义?
  3. 这是否与idGdiPlus::PropertyItem 的字段相同?

例如,以下是否有效:

PROPVARIANT    value;
value.vt = VT_LPWSTR;
value.pwszVal= L"Metadata Test";
hr = piFrameQWriter->SetMetadataByName(L"/ifd/exif/{ushort=1111}");

此代码块成功,但是当我尝试使用以下方法读回相同的元数据时:

IWICMetadataQueryReader *pQueryReader = NULL;
if(SUCCEEDED(hr))
{
    hr = piFrame->GetMetadataQueryReader(&pQueryReader);
}
if (SUCCEEDED(hr))
{
    PROPVARIANT value;
    hr = pQueryReader->GetMetadataByName(L"/ifd/exif/{ushort=1111}", &value);        
}

这将返回 E_INVALIDARG 错误。

我很感激能帮助我理解它是如何工作的。我觉得我没有正确理解文档。

谢谢你。

4

0 回答 0