android 照片旋转并保存
/*** 读取图片属性:旋转的角度* @param path 图片绝对路径* @return degree旋转的角度*/public 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 Bitmap rotaingImageView(int angle , Bitmap bitmap) { //旋转图片 动作 Matrix matrix = new Matrix();matrix.postRotate(angle);// 创建新的图片 return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); }/**** 将bitmap保存在SD jpeg格式* * @param bitmap* 图片bitmap* @param filePath* 要保存图片路径* @param quality* 压缩质量值*/public void saveImage(Bitmap bitmap, String filePath, int quality) {FileOutputStream fileOutputStream = null;try {fileOutputStream = new FileOutputStream(filePath);bitmap.compress(CompressFormat.JPEG, quality, fileOutputStream);fileOutputStream.flush();fileOutputStream.close();// 如果图片还没有回收,强制回收if (!bitmap.isRecycled()) {bitmap.recycle();System.gc();}} catch (Exception e) {}}bitmap=ImageCompress.decodeSampledBitmapFromResource(filename, 480, 800);//图片旋转int Degree = imageUtils.readPictureDegree(filename);bitmap = imageUtils.rotaingImageView(Degree, bitmap);//保存图片到SD卡//imageCompress.saveImage(bitmap, filename);imageCompress.saveImage(bitmap, filename,90);
View Code
/**** 动态设置inSampleSize 倍数* * @param pathName* 图片路径* @param reqWidth* 要压缩的宽度* @param reqHeight* 要压缩的高度* @return*/public static Bitmap decodeSampledBitmapFromResource(String pathName,int reqWidth, int reqHeight) {// 首先设置 inJustDecodeBounds=true 来获取图片尺寸final BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = true;BitmapFactory.decodeFile(pathName, options);// 计算 inSampleSize 的值options.inSampleSize = calculateInSampleSize(options, reqWidth,reqHeight);// 根据计算出的 inSampleSize 来解码图片生成Bitmapoptions.inJustDecodeBounds = false;return BitmapFactory.decodeFile(pathName, options);}
View Code
转载于:https://www.cnblogs.com/freexiaoyu/p/4505184.html
android 照片旋转并保存相关推荐
- Android 屏幕旋转时保存状态
android中每次屏幕的旋转都会重启Activity,所以应该给每个activity加上 android:configChanges="keyboardHidden|orientation ...
- android exifinterface 图片大小,Android图像resize和保存EXIF数据(方向,旋转等)
Android图像resize和保存EXIF数据(方向,旋转等) 如果您的Android应用程序使用设备相机拍摄照片然后resize(这对减小上传大小非常常见),但是您可能没有意识到此大小调整操作会剥 ...
- android 三星调用拍照功能吗,Android 开发手机(三星)拍照应用照片旋转问题解决办法...
Android 开发手机(三星)拍照应用照片旋转问题解决办法 最近解决了一个令我头疼好久的问题,就是三星手机拍照图片旋转的问题,项目中有上传图片的功能,那么涉及到拍照,从相册中选择图片,别的手机都ok ...
- Android 三星手机拍照,从图库选择照片旋转问题完美解决
好久没有写博客了,最近解决了一个令我头疼好久的问题,就是三星手机拍照图片旋转的问题,项目中有上传图片的功能,那么涉及到拍照,从相册中选择图片,别的手机都ok没有问题,唯独三星的手机拍照之后,你会很清楚 ...
- android:解决小米手机相机返回照片旋转问题
背景 公司有一功能需要调用相机或者相册,拍摄或者选择照片先做展示然后上传到服务器.但是提交测试的时候,测试小姐姐给我提了一个bug,描述为拍照返回的照片向左旋转90度展示.由于道长的测试机为华为的,当 ...
- android 旋转视频_如何在Android上旋转视频
android 旋转视频 There's a war going on out there. You won't see it on the news, you won't read about it ...
- android 屏幕旋转不重新加载,Android webview旋转屏幕导致页面重新加载问题解决办法...
Android webview旋转屏幕导致页面重新加载问题解决办法 1. 在create时候加个状态判断 protected void onCreate(Bundle savedInstanceSta ...
- 移动端上传照片 预览+Draw on Canvas's Demo(解决 iOS 等设备照片旋转 90 度的 bug)...
背景: 本人的一个移动端H5项目,需求如下: 需求一:手机相册选取或拍摄照片后在页面上预览 需求二:然后绘制在canvas画布上 这里,我们先看一个demo(http://jsfiddle.net/q ...
- createbitmap 旋转90度_解决某些机型调用系统相机照片旋转的问题
如题,相信很多开发者在调用系统照相机接收拍好的照片时,发现照片被无故旋转了90度.这一问题反映在大部分的三星手机上,当然其他的机器还没试完全,总之是有问题. 于是乎想到如下的解决办法: 识别机型,获取 ...
最新文章
- 【GoLang】深入理解slice len cap什么算法? 参数传递有啥蹊跷?
- java代码走查常见错误_FindBugs常见错误描述和解决方法
- 解决Android中无法搜索联系人的问题
- Java多线程(二):Callable和FutureTask结合使用获取返回值
- merge into ORA-30926
- java获取主机mac_Java 如何获取主机的MAC地址
- 编译mod_jk.so
- windows 2003系列之搭建域环境
- java 出栈_Java开发中巧妙使用链表来实现模拟栈的入栈出栈操作
- 太理java题库_JAVA题库(复习必备)
- js正则表达式 验证非负数
- 脉冲云中使用的ajv
- 【Linux系列文章】安装与配置(vmware)
- 中国十大无线耳机排行榜,音质好配置高的蓝牙耳机分享
- 硬件辅助虚拟化 之EPT(内存虚拟化)介绍
- 压缩机的 压缩比、内容积比、内压力比概念你不要搞混淆了
- SwiftUI 小专栏20200817汇总
- 开源的微信商城,含小程序端,后台管理系统,服务器后端,附完整源码
- java策略模式和工厂模式的区别
- python科学计算库numpy和绘图库PIL的结合,素描图片(原创)