JPEG - 从文件中读取焦距

时间:2012-09-30 20:05:17

标签: c++ jpeg exif

在研究新相机时,我认为在我的照片中生成过去常用设置的概述会很有趣。我主要想检索图片中使用的焦距。虽然光圈/ iso / shutterspeed也是受欢迎的。

在过去10年中使用了不同的相机,我需要将其转换为35mm等效格式进行比较。我知道这是传感器尺寸的函数,特别是传感器裁剪系数乘以焦距。

围绕我无法找到jpeg文件格式标头。我了解到你可以在一个名为wotsit.org的网站上找到大部分内容,但我不能从那里下载任何内容。我对jpeg文件几乎一无所知,但我很确定他们使用exif格式来保存我正在寻找的图像元数据。

http://www.exif.org/Exif2-1.PDF,第49页,显示焦距存储为有理*数字,某处。但我很难掌握结构并将其应用于代码中。此外,要计算相当于35毫米的比例,我必须知道相机的传感器尺寸,这是我在该文档中找不到的。

是否有人能够提示/指出我对jpeg / exif文件的实际结构的指示?我将在这个项目中使用C ++。我知道这一定是可能的,windows显示35mm eqv。我的照片。

*这似乎是两个ulongs代表一个分数,当分开时,给出焦距?

TL; DR:如何从jpeg文件中提取焦距和传感器大小以计算35mm等效焦距?

谢谢!

2 个答案:

答案 0 :(得分:1)

除非您的目的是学习如何阅读这些图像,否则我建议您使用libexif这样的库。

答案 1 :(得分:0)

简短回答:http://www.exiv2.org/