2009-12-19 49 views
1

我用這臺相機的代碼問相機旋轉拍攝的圖像數據:Droid設備 - 不會旋轉從相機捕獲的圖像? (Camera.Parameters)

Camera.Parameters params = camera.getParameters(); 
params.set("rotation", 90); 
camera.setParameters(params); 

這似乎在所有手機上運行,​​除了Droid的。有沒有人看過這個?圖像數據總是風景,但是,Droid上的本機相機應用程序可以生成肖像圖像。

我不知道Droid是否只會尊重新的Camera.Parameters.setRotation()方法,但是這似乎只能在API級別5中使用?

回答

0

旋轉可能只存儲在jpeg exif頭文件中,如setRotation文檔中所述。實際上,Droid就是這種情況。您可以使用jpeg標題閱讀工具(如jhead)來驗證這一點。您也可以使用ExifInterface API來讀取程序中的方向標籤。

+0

嘗試使用exif的API,但無法保存更改。在相機照片上,我無法輪換工作。非常刺激。 – Brenden 2011-03-15 22:48:41

0

Droid運行分別爲API級別5和6的Android 2.0(當前爲2.0.1)。

因此,Droid很可能只會考慮(更明智的)2.0+ API旋轉。我想你的擔心是兼容各種設備類型和操作系統版本,所以我想你必須在檢測操作系統版本(使用android.os.Build.VERSION_CODES)後通過反射調用2.0+ API。

+0

哦哇,這聽起來不愉快 - 我是否應該開始使用2.0 API(看起來像6級),如果我看到API <6,然後使用該參數調用?我不知道我能否走向另一個方向? 謝謝 – Mark 2009-12-20 05:45:12

2

setRotation在Nexus One上似乎也不適合我,但我通過遵循Android Camera應用程序本身的示例獲得了圖像旋轉功能。
的源代碼可以在這裏找到: https://android.googlesource.com/platform/packages/apps/Camera

開始與Camera.java,但你也可以尋找ImageManager.java,Util.java和其他文件。

基本的想法是,您傾聽方向變化並捕捉拍攝照片時的方向。然後,當您在回調中獲取圖片字節時,您可以操作位圖,在位圖上進行旋轉。然後將旋轉的位圖轉換回jpeg。完成之後,您只能從相機應用程序複製大量代碼,僅用於此輪播。

相關問題