android Camera2+TextureView自定义相机开发

前言:系统相机满足不了自定义界面的需求,这时候可以用Camera2和TextureView相结合的方式。

参考:Android:Camera2开发详解(上):实现预览、拍照、保存照片等功能

这位作者写得已经非常好了,我的DEMO只不过是改了点东西,一个是kotlin语言改成java语言,一个是新增了对拍照后图片角度和大小的处理以及图片的保存,这里稍微讲一下:

1、用Camera2拍照,前置摄像头拍出来的图像是镜像,也就是左右反过来的,这与我们照镜子和一般的自拍不同,需要处理,作者已经写了。

2、Camera2拍照后图片会旋转,因为相机默认是横屏的(即横屏时拍默认0°)如果竖直着拍,前置摄像头时会旋转270°,后置摄像头会旋转90°,作者说加入captureRequestBuilder.set(CaptureRequest.JPEG_ORIENTATION, mCameraSensorOrientation);这个设置会使拍出来的方向为自然方向,但经过测试,部分手机对这个设置不起作用。所以,有效的做法是,先获取摄像头方向mCameraSensorOrientation = mCameraCharacteristics.get(CameraCharacteristics.SENSOR_ORIENTATION);然后根据这个方向再结合前置后置的情况对图片进行适当的旋转。

3、图片保存以及对图片进行可选择的压缩。

代码地址:https://github.com/qugengting/Camera2Demo

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值