三星手机拍照后 图片翻转

本文探讨了三星Note37508v型号手机拍照后自动进行翻转的问题,通过分析代码和工具类方法,详细解释了如何在代码中处理该现象,包括获取图片旋转角度、旋转图片方向以及处理不同旋转角度的情况。重点介绍了CommonUtils工具类中的getBitmapDegree方法用于读取图片旋转角度,以及rotaingImageView方法用于旋转图片至正方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到一个奇怪的现象  就是三星Note3 7508v型号的手机 拍照后 会自动的进行翻转。 

1   代码中处理  

int degree = CommonUtils.getBitmapDegree(arg0.result.toString());  

           if(degree>0 ){
             BitmapFactory.Options opts=new BitmapFactory.Options();//获取缩略图显示到屏幕上
             opts.inSampleSize=10;
             Bitmap cbitmap=BitmapFactory.decodeFile(arg0.result.toString(),opts);
             /** 
              * 把图片旋转为正的方向 
              */ 
             Bitmap newbitmap =CommonUtils.rotaingImageView(degree, cbitmap);  
             imageHolder.image.setImageBitmap(newbitmap);
   }else {
   bitmapUtils
.display(imageHolder.image,arg0.result.toString());
   }
imageHolder.image.setOnClickListener(new ImageClickLisenter(
arg0.result.toString()));
imageHolder.pic_progress.setVisibility(View.GONE);

imageHolder.image.setAlpha(1f);


2 工具类中的处理: 

   CommonUtils 工具类中的方法 。

/**
* 图片旋转
* @param angle
* @param bitmap
* @return
*/
public static Bitmap rotaingImageView(int angle, Bitmap bitmap) {
// 旋转图片 动作
Matrix matrix = new Matrix();
;
matrix.postRotate(angle);
// 创建新的图片
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0,
bitmap.getWidth(), bitmap.getHeight(), matrix, true);
return resizedBitmap;
}


/**
* 读取图片的旋转的角度

* @param path
*            图片绝对路径
* @return 图片的旋转角度
*/
public static int getBitmapDegree(String path) {
int degree = 0;
try {
// 从指定路径下读取图片,并获取其EXIF信息
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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值