自定义相机拍照时有时会把手机倾斜着拍或者倒过来拍,怎么能在浏览拍摄的照片时看到的是一张正立的图片呢?

先利用传感器获得手机的拍照时的角度

 private SensorManager sm = null;
    private SensorEventListener sensorEventListener = new SensorEventListener() {public void onSensorChanged(SensorEvent event) {if (Sensor.TYPE_ACCELEROMETER != event.sensor.getType()) {return;
            }float[] values = event.values;
            angle = AngleUtil.getSensorAngle(values[0], values[1]);
        }public void onAccuracyChanged(Sensor sensor, int accuracy) {}};
public void registerSensorManager(Context context) {this.context = context;
    if (sm == null) {sm = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
    }sm.registerListener(sensorEventListener, sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
}public void unregisterSensorManager(Context context) {if (sm == null) {sm = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
    }sm.unregisterListener(sensorEventListener);
}

工具类:旋转角度

public class AngleUtil {public static int getSensorAngle(float x, float y) {if (Math.abs(x) > Math.abs(y)) {/**
             * 横屏倾斜角度比较大
             */
            if (x > 7) {/**
                 * 左边倾斜
                 */
                return 270;
            } else if (x < -7) {/**
                 * 右边倾斜
                 */
                return 90;
            } else {/**
                 * 倾斜角度不够大
                 */
                return 0;
            }} else {if (y > 7) {/**
                 * 左边倾斜
                 */
                return 0;
            } else if (y < -7) {/**
                 * 右边倾斜
                 */
                return 180;
            } else {/**
                 * 倾斜角度不够大
                 */
                return 0;
            }}}
}

拍摄完照片之后

int nowAngle = (angle + 90) % 360;       matrix.setRotate(nowAngle);

自定义相机旋转拍照角度相关推荐

  1. iOS 自定义相机,拍照旋转

    1 , 自定义相机,拿到照片,校正方向 AVCapturePhotoCaptureDelegate 的这个代理方法 func photoOutput(_ output: AVCapturePhotoO ...

  2. Android 自定义相机 身份证拍照 自定义身份证相机

    项目中需要用到拍摄身份证,拍完照片后直接拿到和身份证比例一致的图片,做成功的结果如下:    拍完照后直接拿到裁剪好的图本文的核心技术来自: https://yq.aliyun.com/article ...

  3. 安卓 自定义相机,身份证拍照

    最近项目需要实现身份证拍照的功能,系统的相机并不能满足需求,故需要自定义相机,先上效果图,使用了Camera+ SurfaceView; 布局文件 <?xml version="1.0 ...

  4. 如何用uniapp+vue开发自定义相机插件——拍照+录像功能

    调用手机的相机功能并实现拍照和录像是很多APP与插件都必不可少的一个功能,今天智密科技就来分享一下如何基于uniapp + vue实现自定义相机界面,并且实现: 1: 自定义拍照 2: 自定义录像 3 ...

  5. uniapp小程序开发自定义相机、拍照、上传

    功能背景 项目开发小程序,想要实现一个自定义相机的功能,需要可以拍照,并且显示经纬度等一些其他信息在相机画面上.而且拍照上传,是可以将文字叠加在图片上(目前我这里是由后端实现的,前端应该也是可以做的, ...

  6. iOS自定义相机实现拍照和连拍

    我们常用的拍照模块,大部分代码都是一样的,甚至都不用改就可以直接拖进项目里面使用.但是这仅仅是简单的相机拍照功能,如果我们希望使用更多的功能,比如说连拍等,就需要多一点处理. 我们还是使用UIImag ...

  7. 记录--uniapp自定义相机 自定义界面拍照录像闪光灯切换摄像头

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 因公司业务需要,需要开发水印相机功能,而项目代码用的uniapp框架,App端只能简单调用系统的相机,无法自定义界面,在此基础上,只能开发 ...

  8. Android关闭自定义相机拍照声音

    在自定义相机的代码中,调用 camera.takePicture(null,rawCallback,jpegCallback); 方法完成拍照时会发现无论系统的音量时震动.静音还是有声音都无法关闭自定 ...

  9. Android自定义相机详细讲解

    使用surfaceview自定义相机,同时把自己踩过的坑分享给大家,希望大家有所收获. #写在前面的话 前一阵子负责一个自定义相机进行拍照并在另一个页面进行人脸识别的模块,相机部分需求并不怎么复杂,可 ...

最新文章

  1. RSA签名算法,计算调用加密报文,安全传输
  2. 连你的免疫系统都拒绝996:半夜吃东西更容易拉肚子 | Cell
  3. Java实现MD5加密和文件校验
  4. 华硕重装后进入bios_华硕笔记本重装系统后直接进入bios,怎么办
  5. 如何使用和自定义Win11快速设置菜单
  6. ASP.NET适合做互联网吗,适合做电子商务平台吗?
  7. consul命令行查看服务_Go语言微服务架构实战:第十三节 微服务管理--Docker安装及运行consul节点...
  8. 用户行为序列推荐模型
  9. 衣带渐宽终不悔,为伊消得人憔悴。
  10. uq mysql_MySQL workbench中的PK,NN,UQ,BIN,UN,ZF,AI说明
  11. 小程序列表页tab切换swiper并滚动到上次位置
  12. 时钟页面置换算法c语言,clock置换算法例题(改进clock置换算法例题讲解)
  13. POJ-3368(Frequent values)
  14. 黑客攻击第二次,开redis一瞬间
  15. 实录:有钱女性私生活
  16. VASP安装教程-虚拟机-2022
  17. Android Sp文件 轻量级IOC容器
  18. 基于MVS的三维重建算法学习笔记(五)— 立体匹配经典算法PatchMatch论文翻译及要点解读
  19. 硕士女程序员相亲被拒,晒出征婚条件,网友:这是花钱娶祖宗?
  20. 编辑ueditor的样式(ueditor隐藏工具栏)

热门文章

  1. 论文投稿指南——中文核心期刊推荐(电工技术2)
  2. c#工业自动化控制链接开发库(注意是DLL文件,链接库,非源码)
  3. mysql 表情存储数据库_MYSQL表情存储数据库报错
  4. 简单工厂-工厂方法-抽象工厂
  5. if else练习题
  6. 如何用Graphpad prism绘制点图(Dot plot) ?
  7. Linux命令screen
  8. 夜间灯光影像区域稳定像元提取
  9. 如尼文字(卢恩字母)全解
  10. html 计算24点游戏,0048 JavaScript编程实现算24点游戏