从零开发一款相机APP 第十篇:Camera2 zoom变焦
【小驰笔记】【Android Camera开发】【Android Camera2】【camera2】
本课程内容由 @小驰笔记 出品,欢迎关注,获取更多交流信息~
欢迎访问个人博客:www.xiaochibiji.com
关于数码变焦,前面专门写过一篇文章:
https://mp.weixin.qq.com/s/XZzQytKVz-F0sUMW61FFRQ
一、获取支持的最大数码变焦倍数
CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM
二、请求裁剪范围
CaptureRequest.SCALER_CROP_REGION
三、示例代码
/*** 进行镜头缩放* @param zoom 缩放系数(0~1.0)**/
public void applyZoom(float zoom) {float old = mZoomValue;mZoomValue = zoom;if(mCameraCharacteristics != null){float maxZoom = mCameraCharacteristics.get(CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM);// converting 0.0f-1.0f zoom scale to the actual camera digital zoom scale// (which will be for example, 1.0-10.0)float calculatedZoom = (mZoomValue * (maxZoom - 1.0f)) + 1.0f;Rect newRect = getZoomRect(calculatedZoom, maxZoom);mPreviewBuilder.set(CaptureRequest.SCALER_CROP_REGION, newRect);mPreviewSession.setRepeatingRequest(mPreviewBuilder.build(), null, mBackgroundHandler);}}/*** 获取缩放矩形**/
private Rect getZoomRect(float zoomLevel, float maxDigitalZoom) {Rect activeRect = new Rect();activeRect = mCameraCharacteristics.get(CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE);int minW = (int) (activeRect.width() / maxDigitalZoom);int minH = (int) (activeRect.height() / maxDigitalZoom);int difW = activeRect.width() - minW;int difH = activeRect.height() - minH;// When zoom is 1, we want to return new Rect(0, 0, width, height).// When zoom is maxZoom, we want to return a centered rect with minW and minHint cropW = (int) (difW * (zoomLevel - 1) / (maxDigitalZoom - 1) / 2F);int cropH = (int) (difH * (zoomLevel - 1) / (maxDigitalZoom - 1) / 2F);returnnew Rect(cropW, cropH, activeRect.width() - cropW,activeRect.height() - cropH);
}
推荐阅读:
关于我
博客大更新_
今年,做好一件事情
一篇文章带你了解Android 最新Camera框架
深圳上班,
从事Android Camera相关软件开发工作,
记录生活和工作的点滴,
点击关注“小驰笔记”,期待和你相遇~
从零开发一款相机APP 第十篇:Camera2 zoom变焦相关推荐
- 从零开发一款相机APP 第六篇: Camera2相机 打开功能实现
本课程内容由 @小驰笔记 出品,欢迎关注,获取更多交流信息~ 欢迎访问个人博客:www.xiaochibiji.com` 流程图: 1.获取当前设备支持摄像头颗数 CameraManager mana ...
- 从零开发一款相机APP 第七篇: Camera2相机 预览功能实现
本课程内容由 @小驰笔记 出品,欢迎关注,获取更多交流信息~ 欢迎访问个人博客:www.xiaochibiji.com 显示需要借助surface,一般采用surfaceview或者texturevi ...
- Android Camera:从零开发一款相机APP
从零开发一款相机APP Day 1: 前言 一.Android Camera开发前景: 1)camera相关应用的领域 2)相关岗位介绍: 3)市场招聘介绍: 4)发展前景介绍: 二.学习这门课的重要 ...
- Android Camera:从零开发一款相机APP Day01:前景
一.Android Camera开发前景: 1)camera相关应用的领域2)相关岗位介绍:3)市场招聘介绍:4)发展前景介绍: 二.学习这门课的重要性: 1)适合的人群:2)熟悉和了解Android ...
- Android Camera:从零开发一款相机APP Day02:开发环境安装
一.jdk.sdk的配置: 二.android studio的安装介绍: 三.adb命令的使用: 熟悉android app开发的同学,这章的内容可以直接跳过. 一.jdk.sdk的配置 这个得配置了 ...
- 从零开发一款相机APP 第九篇: Camera2相机 录像功能实现
[小驰笔记][Android Camera开发][Android Camera2][camera2] 本课程内容由 @小驰笔记 出品,欢迎关注,获取更多交流信息~ 欢迎访问个人博客:www.xiaoc ...
- 从零开发一款相机 第五篇:Camera api1实现预览、拍照、录像功能
本课程内容由 @小驰笔记 出品,欢迎关注,获取更多交流信息~ 欢迎访问个人博客:www.xiaochibiji.com 这节课,我们主要讲解如果使用camera api1接口,实现预览.拍照以及录像功 ...
- 从零开发一款笔记APP——神马笔记WhatsNote
从零开发一款笔记APP--神马笔记WhatsNote 一.主要功能 二.开发过程 三.优质的笔记应用 四.附录 一.主要功能 笔记的主要功能分为三个部分: 管理 目录--多层目录结构 标签--单层结构 ...
- 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇)
系列文章 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇) 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇) 前言 好久不见,很久没更新博客了,前段时间 ...
最新文章
- chords(1)最初
- 用按钮控制游戏物件的开启及关闭
- 数据库的增删改查和使用流程
- 19 CO配置-控制-产品成本控制-产品成本计划编制-定义日期控制
- 简洁自适应个人码农主页源码
- matepad适配鸿蒙,消息称华为 MatePad2 搭载骁龙888 4G 华为鸿蒙OS计划适配高通平台...
- 关于StringIndexOutOfBoundsException那些事~
- 线性回归(二)---多元线性回归
- java 对象排重_现代化的 Java (八)——重说对象序列化
- STP RSTP MSTP PVST+学习 (1)
- Qt5学习笔记之bin文件合成工具一:使用对话框选取本地文件并读取
- C# Thread.Sleep 导致内存溢出,在多线程里Sleep的真实情况 软件闪退 内存溢出
- Pytm:威胁建模框架
- rust进水器怎么用_RO反渗透净水器的正确使用方式 你都Get了吗?
- m序列生成方法及其fpga实现
- c4d如何把文字贴在物体表面_C4D立体贴地面字基础知识点
- java BMI指数计算
- pstools本机挂起进程
- xp显示rpc服务器不可用,绿茶XP系统提示“RPC服务器不可用”如何解决
- 淘宝店铺采集工具如何采集同行店铺信息的?