Как использовать WIC API для чтения / записи пользовательских данных EXIF?
Я просмотрел документацию по адресу: http://msdn.microsoft.com/en-us/library/windows/desktop/ee719799(v=vs.85).aspx
В качестве контекста я пытаюсь кодировать в формате JPEG-XR и хочу эмулировать GDI+ SetPropertyItem
, GetPropertyItem
функциональность.
У меня в основном есть 3 вопроса:
- Если я хочу добавить пользовательское свойство в заголовок exif, каков правильный путь запроса?
- Могу ли я использовать собственный идентификатор, скажем
{ushort=1111}
определить его и как проверить, если идентификатор уже определен? - Это так же, как
id
поле GdiPlus::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.
Я был бы признателен за помощь в понимании того, как это работает. Я чувствую, что не правильно понял документацию.
Спасибо.