在 Qt 中读取图像的 exif 元数据

Posted

技术标签:

【中文标题】在 Qt 中读取图像的 exif 元数据【英文标题】:Read exif metadata of images in Qt 【发布时间】:2013-02-28 06:08:41 【问题描述】:

在我的 Qt 应用程序中,我想读取图像的 exif 数据。 QImageQPixmap 似乎没有提供这样的钩子。

Qt 中是否有任何 API 允许在不使用 libexif 等外部库的情况下读取 exif?

编辑:这是this的副本

【问题讨论】:

重复***.com/questions/4105534/… 【参考方案1】:

从 qt 扩展框架中尝试QExifImageHeader。 qtextended.org 对我不可用?但您可以搜索其他下载镜像。

【讨论】:

【参考方案2】:

QImageReader 有一个名为 transformation() 的方法,它是在 5.5 版本中引入的,首先你应该尝试一下。

您还可以查看以下链接,了解如何在 Qt 中使用 Windows GDI,http://amin-ahmadi.com/2015/12/17/how-to-read-image-orientation-in-qt-using-stored-exif/

【讨论】:

【参考方案3】:

对我来说,最好的选择是easyexif by Mayank Lahiri。您只需要将exif.cpp和exif.h这两个文件添加到您的项目中即可。

int main(int argc, char *argv[])

    for (int i=1; i<argc; ++i)
        QFile file(argv[i]);
        if (file.open(QIODevice::ReadOnly))
            QByteArray data = file.readAll();
            easyexif::EXIFInfo info;
            if (int code = info.parseFrom((unsigned char *)data.data(), data.size()))
                qDebug() << "Error parsing EXIF: code " << code;
                continue;
            
            qDebug() << "Camera model         : " << info.Model.c_str();
            qDebug() << "Original date/time   : " << info.DateTimeOriginal.c_str();
         else
            qDebug() << "Can't open file:" << argv[i];           
    

    return 0;

【讨论】:

以上是关于在 Qt 中读取图像的 exif 元数据的主要内容,如果未能解决你的问题,请参考以下文章

Exif.js 读取图像的元数据

Exif.js 读取图像的元数据

Android中读取图片EXIF元数据之metadata-extractor的使用

如何在lua中获取webp图像EXIF元数据?

错误地将 EXIF 元数据写入图像

与 UIActivitiViewController 共享图像(UIImage)的 PHAsset 丢失元数据(Exif 等)