JPEG-从文件读取焦距
JPEG - reading focal length from file
在研究新相机时,我认为对我过去在照片中使用的最常见设置进行概述会很有趣。我主要感兴趣的是检索照片中使用的焦距。尽管光圈/iso/shutterspeed也很受欢迎。
不过,在过去的10年里,我使用了不同的相机,我也需要将其转换为35毫米的等效格式进行比较。我知道这是传感器尺寸的函数,特别是传感器裁剪因子乘以焦距。
四处搜寻,我没能找到jpeg文件格式的标题。我知道你可以在一个名为wotsit.org的网站上找到大多数,但很明显我无法从那里下载任何东西。我对jpeg文件几乎一无所知,但我很确定它们使用exif格式来保存我正在寻找的图像元数据。
http://www.exif.org/Exif2-1.PDF,第49页,显示焦距存储为有理*数。但是我很难掌握结构并将其应用到代码中。此外,为了计算等效的35mm比例,我必须知道相机的传感器尺寸,而我在文档中找不到。
有人能告诉我jpeg/exif文件的实际结构吗?我将在这个项目中使用C++。我知道这一定是可能的,窗口显示35mm设备。我的照片。
*这似乎是两个ulong,代表一个分数,当除以它时,给出焦距?
TL;DR:如何从jpeg文件中提取焦距和传感器大小,以计算35mm等效焦距?
谢谢!
除非你的目的是学习如何阅读这些图像,否则我建议使用libexif这样的库。
简短回答:http://www.exiv2.org/
相关文章:
- 使用新行和不使用新行读取文件
- 读取文件并输入到矢量中
- 读取文件的最后一行并输入到链接列表时出错
- 为什么在读取文件大小时文件IO速度会发生变化
- 读取文件时运行时的未知行为
- 如何逐行读取文件,每行中的内容都用空格分隔并将其写入新文件中
- 读取文件中所有可能的十六进制 16 字节序列并打印每个序列
- C++ 读取文件读取文件不正确
- 读取文件并将其存储在unordered_map中时出现问题
- 读取文件时无法使用 OpenMP 获得加速
- 使用istringstearm和get行缓慢读取文件
- 如何继续读取不同功能中的文件,而不是从头开始再次读取文件?
- 读取文件时引发异常
- 从标准输入读取文件后读取用户输入
- 在读取文件后重置句柄
- 如何在C++编译时读取文件?
- std::ifstream 在读取文件中最后一项时设置 eofbit,但仅在读取数值类型时发生
- 读取文件在第二次调用时返回INVALID_HANDLE
- 通过指针读取文件
- 逐行读取文件,并将数据插入变量和数组中