feat: use libexiv2 to obtain more image metadata

This commit is contained in:
Gary Wang
2020-11-15 19:53:47 +08:00
parent 8c152dc862
commit 5705f02636
8 changed files with 218 additions and 7 deletions

36
app/exiv2wrapper.h Normal file
View File

@ -0,0 +1,36 @@
#ifndef EXIV2WRAPPER_H
#define EXIV2WRAPPER_H
#include <memory>
#include <QString>
#include <QMap>
namespace Exiv2 {
class Image;
}
class Exiv2Wrapper
{
public:
Exiv2Wrapper();
~Exiv2Wrapper();
bool load(const QString& filePath);
void cacheSections();
QString comment() const;
QString label(const QString & key) const;
QString value(const QString & key) const;
private:
std::unique_ptr<Exiv2::Image> m_exivImage;
QMap<QString, QString> m_metadataValue;
QMap<QString, QString> m_metadataLabel;
QString m_errMsg;
template<typename Collection, typename Iterator>
void cacheSection(Collection collection);
};
#endif // EXIV2WRAPPER_H