2013-06-03 44 views
1

我試圖從圖像中獲取exif數據。 我試過放Rmagik image.orientation類型

1. 
puts img.orientation 
#TopLeftOrientation 

2. 
puts img.orientation 
#UndefinedOrientation 

如何我其實可以比較的價值。

,如果我把img.orientation.inspect 我得到一些價值

TopLeftOrientation=1 
UndefinedOrientation=0 

我要值1到0,執行我的邏輯,有沒有辦法?

另外,我發現了一些資源 http://blog.choonkeat.com/weblog/2007/10/lesson-1-after-.html 時:

img["EXIF:Orientation"] == "6" 

它會旋轉(90)

但對我來說,我得到的圖像是 「6」,但它不需要旋轉。有任何想法嗎?

回答

2

你所看到的數字涉及EXIF方向規格: http://sylvana.net/jpegcrop/exif_orientation.html

那些直接映射到這些: http://www.imagemagick.org/RMagick/doc/constants.html#OrientationType

你可以簡單地img.orientation.to_i獲得整數值或使用case語句根據以上鍊接中的常量派生它。

有時EXIF數據只是錯誤的。因此,也請用一點鹽,EXIF數據爲一些圖像可能有缺陷。

最後,我不確定它是否對您有用,但有img.auto_orient!這將根據EXIF數據自動強制圖像適合您的方向。

+0

我建議不要在'auto_orient'中使用「bang」('!')。像我一樣,人們認爲它會定位圖像並保存圖像,而不是。在調用auto_orient之後,圖像仍然需要保存。 –