HarmonyOS 鸿蒙Next中如何理解相机createPreviewOutput的profile.size参数?

HarmonyOS 鸿蒙Next中如何理解相机createPreviewOutput的profile.size参数? 我传入的size为{ height:1080,width:2448 }
为什么得到的预览帧数据是这样的:
cke_2403.png
height与width指的是什么?
为什么不是这样的:
cke_15401.png
摄像头方向不是横向吗,相对于摄像头底边是width,竖着为height,是否文档说明哪个边是width哪个边是height?
我有点晕


更多关于HarmonyOS 鸿蒙Next中如何理解相机createPreviewOutput的profile.size参数?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

设置的是相机的分辨率

cke_123.png

更多关于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的相机开发中,createPreviewOutputprofile.size参数表示预览输出的图像分辨率,其中widthheight分别对应图像的宽和高。这里的宽高是**基于设备自然方向(通常是竖屏)**定义的,与摄像头传感器的物理方向无关。

你传入的{ height:1080, width:2448 }表示期望输出分辨率为1080像素高、2448像素宽。但实际预览帧数据的宽高可能受以下因素影响:

  1. 摄像头传感器方向:多数手机摄像头传感器是横向安装的,但系统会在输出时自动旋转数据,使其匹配设备的自然方向(竖屏)。
  2. 宽高比适配:系统可能会根据预览窗口的宽高比自动裁剪或缩放,导致实际输出与传入尺寸不完全一致。
  3. 支持的预览尺寸:设备可能不支持你传入的精确分辨率,系统会选择最接近的可用分辨率。

从你提供的图片数据来看,实际输出的宽高可能与预期不符,这是因为系统选择了设备支持的预览尺寸,且宽高值是基于竖屏方向。文档中未明确说明widthheight相对于摄像头底边的具体对应关系,但通常以设备竖屏方向为准:width为短边(水平),height为长边(垂直)。

建议通过getSupportedOutputCapability检查设备支持的预览尺寸,并选择匹配的宽高比,以确保预览输出符合预期。

回到顶部