2012-09-30 76 views
1

在研究新相機時,我認爲在我的照片中生成過去最常用設置的概述會很有趣。我主要對檢索圖片中使用的焦距感興趣。雖然光圈/ iso/shutterspeed也會受到歡迎。JPEG - 從文件中讀取焦距

曾使用不同的相機在過去的10年,雖然,我需要它也轉換爲相當於35mm格式進行比較。我知道這是傳感器尺寸的函數,特別是傳感器裁剪因子乘以焦距。

正在搜索我無法找到jpeg文件格式標題。我知道你可以在一個名爲wotsit.org的網站上找到大多數這樣的網站,但我無法從那裏下載任何東西。我幾乎不知道jpeg文件,但我很確定他們使用exif格式來保存圖像元數據,我正在尋找。

http://www.exif.org/Exif2-1.PDF,49頁,示出焦距被存儲爲一個有理*號,某處。但是我很難把握結構並將其用於代碼中。此外,要計算等效的35mm比例,我必須知道相機的傳感器尺寸,這是我在該文檔中找不到的。

會有人能夠給出一個提示/指向我的方向,以JPEG/EXIF文件的實際結構?我將在這個項目中使用C++。我知道這一定是可能的,窗口顯示35毫米eqv。我的照片。

*這似乎是兩個ulongs代表一小部分,即,分割時,給人的焦距?

TL; DR:如何提取JPEG文件的焦距和傳感器尺寸,以便計算的35mm等效焦距?

謝謝!

+1

你真的想爲自己編寫應用嗎? Exiftool命令行應用程序將爲您提供焦距http://owl.phy.queensu.ca/~phil/exiftool/ –

+0

我不認爲這將是一個如此巨大的任務從文件中檢索兩個數字,但它似乎如此。也許如果exiftool接受腳本命令/在dirs上工作不當使用它,檢查它。 – Shaggi

+0

應該可以讓命令行工具做你想做的事(也許只需要一點shell腳本),如果不是,它也是一個perl庫,但我懷疑你會需要它。 –

回答

0

一個簡短的回答:http://www.exiv2.org/

+0

和上面的評論一樣,但是謝謝。很好的文檔,通過它掃描。你以前用過嗎? – Shaggi

+0

@Shaggi:1)我的回答是,第一,和2)不太一樣,libexif是舊的,純C,libexiv2是新的,C++和更容易使用:) –

+0

@Shaggi:是的,我已經用它一位。 –

1

除非你的目的是學習如何閱讀這些圖像我會如libexif建議使用庫。

+0

我對此沒有興趣。我可能最終會使用這個,真的希望沒有這麼大的圖書館來做這樣一件小事。 – Shaggi