首页 > 系统 > Android > 正文

三星手机在android中拍照时,照片反转的问题

2019-11-07 23:58:48
字体:
来源:转载
供稿:网友

最近在项目里,发现使用三星手机拍照时照片被反转

解觉方式:

在拍照后调用:(onActivityResult)

 * 获取图片的旋转角度,有些系统把拍照的图片旋转了,有的没有旋转 */  int degree = readPictureDegree(f.getAbsolutePath());  				BitmapFactory.Options opts=new BitmapFactory.Options();//获取缩略图显示到屏幕上opts.inSampleSize=2;Bitmap cbitmap=BitmapFactory.decodeFile(f.getAbsolutePath(),opts);				/**  * 把图片旋转为正的方向  */  Bitmap newbitmap = rotaingImageView(degree, cbitmap);  iv.setImageBitmap(newbitmap);

	/**	 * 读取图片属性:旋转的角度	 * @param path 图片绝对路径	 * @return degree旋转的角度	 */    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;    }   /*    * 旋转图片     * @param angle     * @param bitmap     * @return Bitmap     */     public static Bitmap rotaingImageView(int angle , Bitmap bitmap) {         //旋转图片 动作          Matrix matrix = new Matrix();;         matrix.postRotate(angle);         System.out.println("angle2=" + angle);         // 创建新的图片          Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);         return resizedBitmap;     }


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表