Как использовать WIC API для чтения / записи пользовательских данных EXIF?

Я просмотрел документацию по адресу:
http://msdn.microsoft.com/en-us/library/windows/desktop/ee719799(v=vs.85).aspx

В качестве контекста я пытаюсь кодировать в формате JPEG-XR и хочу эмулировать GDI + SetPropertyItem, GetPropertyItem функциональность.

У меня в основном есть 3 вопроса:

  1. Если я хочу добавить пользовательское свойство в заголовок exif, каков правильный путь запроса?
  2. Могу ли я использовать собственный идентификатор, скажем {ushort=1111} определить его и как проверить, если идентификатор уже определен?
  3. Это так же, как 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.

Я был бы признателен за помощь в понимании того, как это работает. Я чувствую, что не правильно понял документацию.

Спасибо.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]