簡體   English   中英

如何檢查照片是在Android的橫向還是縱向模式下拍攝的?

[英]How to check whether the photo was taken in landscape or portrait mode in Android?

我是Android的新手。 我正在嘗試創建一個具有照片捕獲功能的應用程序。 問題是照片旋轉不正確。 如果我在橫向模式下拍攝照片會很好,但是在縱向模式下照片旋轉會出錯。 我的問題是:我可以檢查照片是否以風景/人像模式拍攝嗎? 因為當我檢查LogCat時,我可以看到名為“ CameraEngine”的標簽,它的旋轉角度為:0或90。如果可以通過代碼獲取這種相機信息,那將會很酷。

您可以比較圖像的寬度和高度:

Bitmap bmp = your photo;

if(bmp.getWidth() > bmp.getHeight())
{
   // landscape
}else
{
   // portrait
}

您無法在Android中檢查照片是否是使用PhoneGape 2.9及更高版本專門拍攝的。

因為您必須從存儲在所拍攝照片中的EXIF屬性中提取此信息,而android甚至不會寫出此屬性的方向。

您可以參考以下關於問題的更多信息的回復: 旋轉帶有iphone上橫向拍攝的照片的canvas drawImage()

這應該做您需要的。 它以角度(0/90/180/270)返回方向:

private int getOrientation(Uri aUri, ContentResolver aRslv) {
    Cursor _cursor = aRslv.query(aUri,
            new String[] { MediaStore.Images.ImageColumns.ORIENTATION },
            null, null, null);

    if (_cursor != null) {
        try {

            if (_cursor.moveToFirst()) {
                return _cursor.getInt(0);
            } else {
                return -1;
            }
        } finally {
            _cursor.close();
        }
    } else {
        return 0;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM