HarmonyOS 鸿蒙Next中如何理解相机createPreviewOutput的profile.size参数?
HarmonyOS 鸿蒙Next中如何理解相机createPreviewOutput的profile.size参数?
我传入的size为{ height:1080,width:2448 }
为什么得到的预览帧数据是这样的:
height与width指的是什么?
为什么不是这样的:
摄像头方向不是横向吗,相对于摄像头底边是width,竖着为height,是否文档说明哪个边是width哪个边是height?
我有点晕
更多关于HarmonyOS 鸿蒙Next中如何理解相机createPreviewOutput的profile.size参数?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
设置的是相机的分辨率
更多关于HarmonyOS 鸿蒙Next中如何理解相机createPreviewOutput的profile.size参数?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
width
:图像水平方向(横向)的像素数量height
:图像垂直方向(纵向)的像素数量
是看相机的视频帧图片,不做处理,直接在屏幕上显示,水平为width,垂直为height吗?
width与height方向定义:
width始终对应摄像头传感器物理长边方向(横向) height对应传感器短边方向(纵向) 无论设备如何旋转,参数均以传感器原生方向为基准
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
我如何知道传感器 短边/长边 是 哪个边?
是看相机的视频帧图片,不做处理,直接在屏幕上显示, 图片长边即对应传感器物理长边,图片短边即对应传感器短边 吗?
在HarmonyOS鸿蒙Next中,相机createPreviewOutput方法的profile.size参数用于指定预览输出的图像尺寸。该参数是一个Size对象,包含宽度和高度值,决定了预览画面的分辨率。系统会根据设备支持的预览尺寸列表匹配最合适的值,若设置不支持的尺寸可能导致预览失败。该参数直接影响预览画面的清晰度和性能,需与设备硬件能力保持一致。
在HarmonyOS Next的相机开发中,createPreviewOutput
的profile.size
参数表示预览输出的图像分辨率,其中width
和height
分别对应图像的宽和高。这里的宽高是**基于设备自然方向(通常是竖屏)**定义的,与摄像头传感器的物理方向无关。
你传入的{ height:1080, width:2448 }
表示期望输出分辨率为1080像素高、2448像素宽。但实际预览帧数据的宽高可能受以下因素影响:
- 摄像头传感器方向:多数手机摄像头传感器是横向安装的,但系统会在输出时自动旋转数据,使其匹配设备的自然方向(竖屏)。
- 宽高比适配:系统可能会根据预览窗口的宽高比自动裁剪或缩放,导致实际输出与传入尺寸不完全一致。
- 支持的预览尺寸:设备可能不支持你传入的精确分辨率,系统会选择最接近的可用分辨率。
从你提供的图片数据来看,实际输出的宽高可能与预期不符,这是因为系统选择了设备支持的预览尺寸,且宽高值是基于竖屏方向。文档中未明确说明width
和height
相对于摄像头底边的具体对应关系,但通常以设备竖屏方向为准:width
为短边(水平),height
为长边(垂直)。
建议通过getSupportedOutputCapability
检查设备支持的预览尺寸,并选择匹配的宽高比,以确保预览输出符合预期。