Android 开发手机(三星)拍照应用照片旋转问题解决办法
Android 开发手机(三星)拍照应用照片旋转问题解决办法
最近解决了一个令我头疼好久的问题,就是三星手机拍照图片旋转的问题,项目中有上传图片的功能,那么涉及到拍照,从相册中选择图片,别的手机都ok没有问题,唯独三星的手机拍照之后,你会很清楚的看到会把照片旋转一下,然后你根据路径找到的图片就是已经被旋转的了,解决办法终于被我找到了。我们可以根据图片的路径读取照片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; }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Android 偷拍功能实现(手机关闭依然拍照)详解及实例代码
Android 偷拍功能/手机关闭能拍照 效果如下: 其实偷拍与偷录实现方式是一样的,都是使用到的WindowManager来绘制桌面小控件的原理.那我就不多说了- 一.首先我们需要一个SurfaceView: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&quo
-
Android调用系统拍照裁剪图片模糊的解决方法
在Android中,调用系统相机拍照时,将会接收到返回的图像数据,但是这些图片并不是全尺寸的图像,而是系统给的缩略图,当对拍照的图片进行裁切后显示时,得到的却是模糊的图片.下面针对这个问题提出解决的方法. 首先,我们知道调用系统的裁切是通过Intent intent = new Intent("com.android.camera.action.CROP"); 但是intent到底能够携带哪些数据呢,都有什么含义呢,我们可以看到如下: 上面包含了所有可选的操作,其中有一些非常重要的参数
-
Android 7.0中拍照和图片裁剪适配的问题详解
前言 Android 7.0系统发布后,拿到能升级的nexus 6P,就开始了7.0的适配.发现在Android 7.0以上,在相机拍照和图片裁剪上,可能会碰到以下一些错误: Process: com.yuyh.imgsel, PID: 22995 // 错误1 android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/com.yuyh.imgsel/cache/1486438962645.jpg ex
-
Android SurfaceView拍照录像实现方法
Surface的拍照实现也是很简单,一个小demo就可以把流程看懂了. 话不多说,直接上代码 布局文件 <SurfaceView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/sv_main_surface" /> <Button android:layout_width="match_
-
Android仿微信单击拍照长按录像功能实例代码
此文章是看郭神公众号发的一篇,仅作学习. 在modlue gradle中添加 compile 'cjt.library.wheel:camera:0.0.7' 在project gradle中添加 compile 'cjt.library.wheel:camera:0.0.7' 添加的地方是 allprojects { repositories { jcenter() /*在此处添加*/ } } 使用起来很方便,只需在xml布局中 <com.cjt2325.cameralibrary.JCame
-
Android获取本地相册图片和拍照获取图片的实现方法
需求:从本地相册找图片,或通过调用系统相机拍照得到图片. 容易出错的地方: 1.当我们指定了照片的uri路径,我们就不能通过data.getData();来获取uri,而应该直接拿到uri(用全局变量或者其他方式)然后设置给imageView imageView.setImageURI(uri); 2.我发现手机前置摄像头拍出来的照片只有几百KB,直接用imageView.setImageURI(uri);没有很大问题,但是后置摄像头拍出来的照片比较大,这个时候使用imageView.setIm
-
Android实现拍照及图片显示效果
本文实例为大家分享了Android拍照及图片显示的具体代码,供大家参考,具体内容如下 1.功能声明 当应用需要使用相机.NFC等外设时,需要在AndroidManifest.xml中进行声明. 这样,当设备缺少这些外设时,应用商店的安装程序可以拒绝安装设备. 声明示例代码如下: <uses-feature android:name="android.hardware.camera2" <!-- required为false时,不强制要求设备支持该功能 --> <
-
Android 开发手机(三星)拍照应用照片旋转问题解决办法
Android 开发手机(三星)拍照应用照片旋转问题解决办法 最近解决了一个令我头疼好久的问题,就是三星手机拍照图片旋转的问题,项目中有上传图片的功能,那么涉及到拍照,从相册中选择图片,别的手机都ok没有问题,唯独三星的手机拍照之后,你会很清楚的看到会把照片旋转一下,然后你根据路径找到的图片就是已经被旋转的了,解决办法终于被我找到了.我们可以根据图片的路径读取照片exif(Exchangeable Image File 可交换图像文件)信息中的旋转角度 根据调试,可以清楚的发现三星手机拍照的图片
-
Android调用手机摄像头拍照和录音功能
本文实例为大家分享了Android调用手机摄像头拍照和录音功能的具体代码,供大家参考,具体内容如下 调用摄像头拍照: public class MainActivity extends Activity { private Button button; private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super
-
Android开发中requestfocus()无效的原因及解决办法
前言 最近做公司项目的时候,经常会遇到一个问题,就是我为某个控件如EditText设置requestfocus()的时候不管用,比如说登陆的时候,我判断下用户输入的密码,如果正确就登陆,错误就提示密码错误,并且输入框获取焦点,但是实际中确不起作用 package com.example.hfs.requestfocusdemo; import android.content.Intent; import android.support.v7.app.AppCompatActivity; impo
-
Android ScrollView 下嵌套 ListView 或 GridView出现问题解决办法
Android ScrollView 下嵌套 ListView 或 GridView出现问题解决办法 ScrollView 下嵌套 ListView 或 GridView 会发列表现数据只能显示一行.因为他们都是滚动结构,两个滚动条放到一起就会引起冲突. 解决此问题可以通过计算 ListView 高度或重写 ListView 的 onMeasure 方法来解决.下面介绍通过重写 onMeasure 方法来解决问题. 重写 onMeasure 方法如下: public class ScrollLi
-
Android的App启动时白屏的问题解决办法
Android的App启动时白屏的问题解决办法 在手机上调试后第一次启动后会等待很长时间白屏, 设置style样式,给activity加上设置的样式,完美解决 参考一下下面的代码.就可以解决(亲测好用) <style name="SplashTheme" parent="AppBaseTheme"> <!-- 将splash图片设置在这,这样这张图片取代白屏 --> <item name="android:windowBack
-
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
HTML5+canvas进行移动端手机照片上传时,发现iOS手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非横拍的ios照片进行角度旋转修正. 利用exif.js读取照片的拍摄信息,这里主要用到Orientation属性. Orientation属性说明如下: 下面就直接上代码了. 主要有html5页面和一个js,示例功能包含了图片压缩和旋转. 自己写的是uploadImage.js. html5测试页面
-
Android开发从相册中选取照片的示例代码
最近项目在做一个功能:就是需要从用户选择头像跳转到相册选择图片,这应该是一个很简单的需求,但是在网上搜了一下有好多都讲的很乱,其实用几十行代码就可以实现的为什么要说的那么复杂呢,下面就简单说一下喽. 下面说两种方法分别是直接选择相册返回,另外一种为选择相册之后进行裁剪.先上效果图 (1)直接选择相册后返回 第一步就是主要跳转的相册 //在这里跳转到手机系统相册里面 Intent intent = new Intent( Intent.ACTION_PICK, android.provider.M
-
Android开发手机无线调试的方法
是不是还在为了手机usb被占用而不能链接编译器而难过?是不是感觉无线调试遥不可及? 读完下面的几步 让你轻松掌握无线调试. 1. 首先将你的手机连接到无线网 2. 将你的手机链接到电脑上 3. Window 配置好adb Linux 安装好adb 4. 确认手机链接到无线网络需要和你的电脑在同一个无线网络内 5. 在命令端输入 $ adb tcpip 5555 (5555为端口号,可以自由指定) 然后在输如下命令 $ adb tcpip 此时你可以查看到 自己手机的ip地址 大概如下所示 10.
-
Android部分手机拍照后获取的图片被旋转问题的解决方法
调用Android系统拍照功能后,三星手机拍摄后的照片被旋转了90度,横着拍给你变成竖的,竖的拍给你变成横的.其它品牌的手机都是正常的,就三星出现这个怪事. 在Android适配上,我原来一直以为国内的小米手机够奇葩了,结果还有更奇葩的!你说你没事旋转照片干啥,实在是猜不透其居心何在,纯粹是在给开发者制造麻烦啊! 解决办法是获取到拍照后照片被旋转的角度,再旋转回去就好了. 具体思路: 1.首先在调用拍照方法时,保存拍照后的相片原图,得到原图路径,(PhotoBitmapUtils是我自己写的一个
-
解决android有的手机拍照后上传图片被旋转的问题
需求:做仿新浪发微博的项目,能够上传图片还有两外一个项目用到手机拍摄图片,这两个都需要把图片上传到服务器 遇到问题:有的手机拍摄的图片旋转90度,有的图片旋转了180度,有的手机是正常的,服务器要求的是正的,这样问题就来了,不能用户发个照片在微博上看到的是被旋转了的啊,另外一个项目里旋转了的图片直接匹配出现问题,这个更严重. 解决:开始的时候在网上没有找到很好的解决办法,谷歌百度的搜了一通,想到第一种解决方式,当手机拍照结束,在返回结果处理里面立即跳转到一个新的页面,在新的页面里让用户自己手动去
随机推荐
- BootStrap 标题设置跨行无效的解决方法
- Linux学习之CentOS(一)----在VMware虚拟机中安装CentOS 7(图文教程)
- jQuery Autocomplete简介_动力节点Java学院整理
- myeclipse5.5注册机 Myeclipse6.0M1 Key序列号
- iOS使用UIBezierPath实现ProgressView
- JavaScript实现继承的4种方法总结
- Cocos2d-x中CCEditBox文本输入框的使用实例
- 使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
- 带你了解PHP7 性能翻倍的关键
- 解密ThinkPHP3.1.2版本之独立分组功能应用
- Linux和Windows中tomcat修改内存大小的方法
- C语言菜鸟基础教程之求1到100的和
- RecyclerView的简单使用
- WebSocket实现简单客服聊天系统
- JavaScript判断浏览器类型的方法
- jQuery拖拽插件gridster使用指南
- jquery 表格排序、实时搜索表格内容(附图)
- JavaScript实现动态添加,删除行的方法实例详解
- C#获取机器码的方法详解(机器名,CPU编号,硬盘编号,网卡mac等)
- Android中检查网络连接状态的变化无网络时跳转到设置界面