UPDATE
Exif是一些信息數據插入到JPEG文件格式。 https://www.media.mit.edu/pia/Research/deepview/exif.html
和Bitmap
是數據結構數據保存行像素數據,沒有exif信息。
所以我認爲從Bitmap
得到exif信息是不可能的。
沒有辦法獲得exif信息。
https://developer.android.com/reference/android/graphics/Bitmap.html
ORIGINAL
我同意@DzMobNadjib。 我認爲旋轉的信息只在exif。 要採取exif,我建議您採取以下步驟。
1.使用文件路徑啓動相機活動。
請參閱[保存全幅照片]捕獲this document。
您可以使用文件路徑啓動相機活動。相機活動將圖像保存到您傳遞的文件路徑。
2.在 'onActivityResult',按照this answer(如@DzMobNadjib建議)
您的代碼將是這樣的:
(對不起,我沒有測試過,請閱讀carefuly,並按照上面的回答。 )
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == Constants.CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
Uri uri = data.getData();
Bitmap bitmap = getAdjustedBitmap(uri);
}
}
}
private Bitmap getAdjustedBitmap(Uri uri) {
FileInputStream is = null;
try {
ExifInterface exif = new ExifInterface(uri.getPath());
int rotation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
int rotationInDegrees = exifToDegrees(rotation);
Matrix matrix = new Matrix();
if (rotation != 0f) {
matrix.preRotate(rotationInDegrees);
}
is = new FileInputStream(new File(uri.getPath()));
Bitmap sourceBitmap = BitmapFactory.decodeStream(is);
int width = sourceBitmap.getWidth();
int height = sourceBitmap.getHeight();
return Bitmap.createBitmap(sourceBitmap, 0, 0, width, height, matrix, true);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
}
}
}
return null;
}
private static int exifToDegrees(int exifOrientation) {
if (exifOrientation == ExifInterface.ORIENTATION_ROTATE_90) { return 90; }
else if (exifOrientation == ExifInterface.ORIENTATION_ROTATE_180) { return 180; }
else if (exifOrientation == ExifInterface.ORIENTATION_ROTATE_270) { return 270; }
return 0;
}
的可能的複製([爲什麼圖像捕捉通過相機獲取的意圖在機器人某些設備旋轉] http://stackoverflow.com/questions/14066038/why-image-captured-using-camera-intent-在Android中獲取旋轉的某些設備) –
@Mik elPascual該問題doest指定如何獲得位圖的exif,這正是我所說的在op –
您可以看到這[回覆](http://stackoverflow.com/a/11081918/5061288),我認爲這是有幫助的。 –