2017-02-22 47 views
1

Я хочу получить метаданные EXIF ​​из моих изображений JPEG (только DateTime). Я хочу использовать стандартные функции Qt, если это возможно. Я использую Qt Creator для Windows.QT получить jpeg exif метаданные для DateTime

Я попытался использовать QMediaMetaData::DateTimeOriginal(), но я не знаю, как его использовать. Поэтому я не могу ее скомпилировать. Я не нашел примеров для изображений.

Моя попытка:

QString info; 
info = QMediaMetaData::DateTimeOriginal(PathtoImageFile); 

Сообщение об ошибке:

...mainwindow.cpp:80: Fehler: no match for call to '(const QString) (QString&)' 
      info = QMediaMetaData::DateTimeOriginal(PathtoImageFile); 
                  ^

Что я делаю не так, и что это правильный путь, чтобы получить эти метаданные?

Примечание: Я гарантировал, что мультимедийная библиотека включена/связаны между собой:

QT += multimedia 
+0

Добавьте 'QT + = мультимедиа' в ваш .pro-файл и попробуйте выполнить компиляцию еще раз. – Steeve

+0

спасибо, изменено @TobySpeight –

+0

Я не уверен, что это было решено с помощью Qt? Если да, отправьте решение. Тем временем я могу прокомментировать, что я использовал для этого легкую библиотеку [easyexif] (https://github.com/mayanklahiri/easyexif). Но я действительно искал собственное решение Qt, в частности тот, который также может перезаписать информацию о времени на дату Exif для существующей фотографии. –

ответ

1

документация показывает, что QMediaMetaData::DateTimeOriginal не является методом; это строковая константа, которая может использоваться с методом QMediaObject::metaData(). Итак, вы хотите что-то большее, как

QDateTime t = mediaObject->metaData(QMediaMetaData::DateTimeOriginal).toDateTime(); 
+0

Спасибо. Итак, мне нужно создать mediaObject? У меня уже есть путь как строка. –

+0

Я не знаю, как получить подходящий 'QMediaObject' из имени файла или содержимого - я попытался найти его там скрытым, но Qt Multimedia кажется более ориентированным на создание устройств захвата, чем для графических редакторов. :( –