2016-11-25 64 views
-1

通常情況下,寬度>高度的圖像爲橫向,寬度爲<高度爲縱向。Android - 使用具有相同信息的圖像確定橫向或縱向

但由於某種原因,我的三星Galaxy S6的圖像W:H(默認拍攝的應用程序拍攝)始終是風景,即使它是肖像。

風景和肖像圖像的信息都顯示5312 x 2988.該肖像應該是2988 x 5312,但它不是,它也顯示5312 x 2988。

這就是爲什麼我的代碼中的輸入始終將圖像識別爲風景。

必須有其他方法來檢查它,因爲肖像圖像在圖庫中正確顯示。如果他們使用圖像的W:H,那麼所有圖像應該已經顯示爲園景。

圖像中是否還有其他信息可用?感謝您的時間。

回答

0

在幾乎所有設備上總是以橫向模式拍攝圖像,因此如果您在橫向和縱向上看到它們,尺寸都會相同。

您可以通過下面的代碼檢查設備方向:

getResources().getConfiguration().orientation 

,並得到一個回調每當

onConfighanges(Configuration newConfig) 

see this link

+0

謝謝!但只有少數設備顯示相同的尺寸,並且在手機處於縱向或橫向模式時拍攝圖像無關緊要。這是關於圖像的大小,而不是手機的當前狀態(例如,您可以在縱向模式下拍攝照片,但使用以橫向模式導入圖像的代碼 - 必須將照片檢測爲肖像,getResources() .getConfiguration()。orientation'只是獲取手機的狀態)。 –

0

方位的變化,我發現該問題的解決方法。這可能無法100%工作,但也許會有所幫助。

我結束了使用ExifInterface來檢查ExifInterface.TAG_ORIENTATION這樣的:

ExifInterface exifi = new ExifInterface(originalAvatarPath.getPath()); 
       int ori = Integer.parseInt(exifi.getAttribute(ExifInterface.TAG_ORIENTATION)); 

然後比較ori,如果它與在here

並不是所有圖象描述像ExifInterface.ORIENTATION_ROTATE_180ExifInterface.ORIENTATION_ROTATE_90值等於將包含Exif信息,但它適用於我。

希望它有幫助。

相關問題