Я сделал снимок с помощью камеры и определил угол наклона с помощью датчиков. Я сохранил изображение на SD-карте с углом наклона, но хочу сохранить изображение с углом коррекции. Означает, что содержимое изображения нужно наклонить относительно заданного угла. Я использую следующий код для угла наклона.
//Calculate Tilt in degrees
double sinT = 2.0 * (w * y - z * x);
if (Math.abs(sinT) >= 1)
tilt = Math.copySign(Math.PI / 2, sinT) * (180 / Math.PI);
else
tilt = Math.asin(sinT) * (180 / Math.PI)
Пожалуйста, проверьте изображение ниже для углов наклона. введите описание изображения здесь
Я хочу отображать изображение с коррекцией наклона угол. Например, если телефон наклоняется до -10 градусов влево, изображение должно автоматически повернуться на +10 градусов в качестве угла коррекции и показать его для просмотра изображения.
Я использую следующий код для поворота изображения с углом коррекции, но он не работает во всех направлениях.
String photopath = tempphoto.getPath().toString();
Bitmap bmp = BitmapFactory.decodeFile(photopath);
Matrix matrix = new Matrix();
matrix.postRotate(correctionangle);
bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, true);
FileOutputStream fOut;
try {
fOut = new FileOutputStream(tempphoto);
bmp.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
fOut.flush();
fOut.close();
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Может ли кто-нибудь направить меня. Любая помощь будет принята с благодарностью.