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

时间:2013-02-28 06:08:41

标签: qt exif

在我的Qt应用程序中,我想阅读图像的exif数据。 QImageQPixmap似乎没有提供此类挂钩。

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

编辑:这是this

的副本

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

对我来说,最好的选择是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;
}