Android開発携帯電話(サムスン)写真アプリ写真回転問題解決方法
1758 ワード
Android開発携帯電話(サムスン)写真アプリ写真回転問題解決方法
最近1つの私を悩ませる长い问题を解决して、サムスンの携帯电话の写真を撮るピクチャーの回転の问题で、プロジェクトの中でピクチャーをアップロードする机能があって、それでは写真を撮ることに関连して、アルバムの中からピクチャーを选んで、他の携帯电话はすべて问题がなくて、サムスンの携帯电话だけが写真を撮った后で、あなたはとてもはっきりと写真を回転することができて、それからあなたが経路によって探し当てるピクチャーはすでに回転されたので、解決策はやっと私に見つかった.写真exif(Exchangeable Image File)情報の回転角度を画像の経路に従って読み取ることができます.
デバッグによると、サムスンが撮影した画像の回転角度は90度で、他の携帯電話の回転角度は0度であることが明らかになった.
コードを見てみましょう.
では、回転角度に合わせて画像を回転させるだけでOKです
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!
最近1つの私を悩ませる长い问题を解决して、サムスンの携帯电话の写真を撮るピクチャーの回転の问题で、プロジェクトの中でピクチャーをアップロードする机能があって、それでは写真を撮ることに関连して、アルバムの中からピクチャーを选んで、他の携帯电话はすべて问题がなくて、サムスンの携帯电话だけが写真を撮った后で、あなたはとてもはっきりと写真を回転することができて、それからあなたが経路によって探し当てるピクチャーはすでに回転されたので、解決策はやっと私に見つかった.写真exif(Exchangeable Image File)情報の回転角度を画像の経路に従って読み取ることができます.
デバッグによると、サムスンが撮影した画像の回転角度は90度で、他の携帯電話の回転角度は0度であることが明らかになった.
コードを見てみましょう.
/**
* exif
* @param path
* @return
*/
public static int readPictureDegree(String path) {
int degree = 0;
try {
ExifInterface exifInterface = new ExifInterface(path);
int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
degree = 90;
break;
case ExifInterface.ORIENTATION_ROTATE_180:
degree = 180;
break;
case ExifInterface.ORIENTATION_ROTATE_270:
degree = 270;
break;
}
} catch (IOException e) {
e.printStackTrace();
}
return degree;
}
では、回転角度に合わせて画像を回転させるだけでOKです
public static Bitmap toturn(Bitmap img){
Matrix matrix = new Matrix();
matrix.postRotate(+90); /* 90 */
int width = img.getWidth();
int height =img.getHeight();
img = Bitmap.createBitmap(img, 0, 0, width, height, matrix, true);
return img;
}
読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!