本文主要是介绍Android 修改Camera的最大变焦倍数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、前摄后摄都修改
- 二、只修改前摄或后摄
由于项目的摄像头在预览时如果放大太多倍(比如放大4倍或者8倍)会出现模糊的情况,所以我们需要做出限制,修改Camera的最大变焦倍数。(以下示例为Android13 MTK平台)
一、前摄后摄都修改
- 第一种修改方案:
vendor/vendor/mediatek/proprietary/custom/common/hal/imgsensor_metadata/common/config_static_metadata_scaler.h
例如我们这里修改的就是4倍
//==========================================================================CONFIG_METADATA_BEGIN(MTK_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM)CONFIG_ENTRY_VALUE(4, MFLOAT) //此参数表示最大支持变焦数CONFIG_METADATA_END()//==========================================================================
- 第二种修改方案:
vendor/vendor/mediatek/proprietary/packages/apps/Camera2/feature/setting/zoom/src/com/mediatek/camera/feature/setting/zoom/ZoomCaptureRequestConfig.java
将mMaxZoom变量重新赋值为我们想要的变焦倍数
@Overridepublic void setCameraCharacteristics(CameraCharacteristics characteristics) {//........省略多余代码.........} else {mMaxZoom = characteristics.get(CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM);}LogHelper.d(TAG, "[setCameraCharacteristics] MaxZoom: " + mMaxZoom);//将mMaxZoom重新赋值 mMaxZoom = 2.0f; //此参数表示最大支持变焦数LogHelper.d(TAG, "[setCameraCharacteristics] MaxZoom: " + mMaxZoom);//judge whether support zoom ratio or notRange<Float> zoomRatioRange =characteristics.get(CameraCharacteristics.CONTROL_ZOOM_RATIO_RANGE);mZoomRatioSupported = zoomRatioRange != null && zoomRatioRange.getUpper() >0;//........省略多余代码.........
二、只修改前摄或后摄
首先,我们要找到项目中所用到的前摄、后摄的目录名称是什么。例如我当前的项目的前摄是在gc05a2_mipi_raw目录下,那么我们就找到其中的metadata.sensor文件去修改即可。
那知道项目中前摄后摄的目录是哪一个怎么办?
我们在vendor/vendor/device/xxxx/类似这样的目录中去找到ProjectConfig.mk,里面的CUSTOM_HAL_IMGSENSOR和CUSTOM_KERNEL_IMGSENSOR这两个字段里面就包含前后摄的目录名称。
类似于这样
CUSTOM_HAL_IMGSENSOR = gc13a0_mipi_raw gc05a2_mipi_raw gc02m1_mipi_raw ov9281_mipi_raw
CUSTOM_KERNEL_IMGSENSOR = gc13a0_mipi_raw gc05a2_mipi_raw gc02m1_mipi_raw ov9281_mipi_raw
vendor/vendor/mediatek/proprietary/custom/common/hal/imgsensor_metadata/sensor/gc05a2_mipi_raw/config_static_metadata.sensor.gc05a2mipiraw.h
在config_static_metadata.sensor.gc05a2mipiraw.h文件中加上这样的修改,这样就相当于前摄我们修改为了最大两倍。在编译时,这里配置的变量会覆盖掉common目录中的,所以最终会以这里修改的为准。
//==========================================================================CONFIG_METADATA_BEGIN(MTK_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM)CONFIG_ENTRY_VALUE(2, MFLOAT) //此参数表示最大支持变焦数CONFIG_METADATA_END()//==========================================================================
这篇关于Android 修改Camera的最大变焦倍数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!