【鸿蒙实战开发】基于CameraKit对相机进行操作

鸿蒙(HarmonyOS)实战开发篇——基于CameraKit对相机进行操作 1.在开发相机应用时,需要先申请相机相关权限。2.创建一个相机设备,应用通过调用和控制相机设备完成拍照基础操作。3.创建一个相机会话,在会话中可以进行相机的输入流和输出流,添加闪光灯、调整焦距等配置。4.创建输出流,相机开发模型为Surface模型,即应用通过Surface进行数据传递,通过ImageReceiver的surface获取拍照流的数据、通过XComponent的surface获取预览流的数据进行预览。如果要实现双路预览可将拍照流改为预览流。5.获取拍照返回的图片并显示出来。 阅读详情

往期知识点整理

场景描述

用户在进行拍照、录像等操作时需要通过相机获取捕获图像的能力,开发者可以通过CameraKit相关相机接口对相机进行操作。拍照是相机的最重要功能之一,拍照模块基于相机复杂的逻辑,为了保证用户拍出的照片质量,在中间步骤可以设置分辨率、闪光灯、焦距、照片质量及旋转角度等信息。

场景一:拍照并返回图片

场景二:切换摄像头场景三:打开关闭闪光灯

方案描述

场景一:开发相机功能进行拍照并返回图片

效果图

自定义相机创建一路预览和一路拍照,同时进行实时画面的预览和拍照并返回图像

方案一通过camerakit自定义相机拍照

1.在开发相机应用时,需要先申请相机相关权限。

2.创建一个相机设备,应用通过调用和控制相机设备完成拍照基础操作。

3.创建一个相机会话,在会话中可以进行相机的输入流和输出流,添加闪光灯、调整焦距等配置。

4.创建输出流,相机开发模型为Surface模型,即应用通过Surface进行数据传递,通过ImageReceiver的surface获取拍照流的数据、通过XComponent的surface获取预览流的数据进行预览。如果要实现双路预览可将拍照流改为预览流。

5.获取拍照返回的图片并显示出来。

核心代码

1.在module.json5文件中配置申请相机所需要的权限

"requestPermissions": [

{

  "name":

  "ohos.permission.CAMERA",

  "reason":

  "$string:EntryAbility_desc",

  "usedScene":

  {

    "abilities": [

    "EntryAbility"

    ]

  }

}

,

{

  "name":

  "ohos.permission.MICROPHONE",

  "reason":

  "$string:EntryAbility_desc",

  "usedScene":

  {

    "abilities": [

    "EntryAbility"

    ]

  }

}

,

{

  "name":

  "ohos.permission.MEDIA_LOCATION",

  "reason":

  "$string:EntryAbility_desc",

  "usedScene":

  {

    "abilities": [

    "EntryAbility"

    ]

  }

}

,

{

  "name":

  "ohos.permission.WRITE_MEDIA",

  "reason":

  "$st
HarmonyOS 实战开发 —— 基于CameraKit,通过avrecorder进行录像 总体可分为:1、相机输入,2、同时输出预览流+录像流1、通过cameraInputt,获取相机采集数据,创建相机输入2、创建previewOutput,获取预览输出流,通过xcomponent的surfaceid连接,送显xcomponent3、通过AVrecorder的surfaceid创建录像输出流VideoOutput输出到文件中。 阅读详情

相关推荐

HarmonyOS鸿蒙基于Java开发: 相机开发

相机配置主要是设置预览、拍照、录像用到的Surface(详见ohos.agp.graphics.Surface),没有配置过Surface,相应的功能不能使用。创建相机设备成功后,在CameraStateCallback中会触发onCreated(Camera camera)回调,并且带回Camera对象,用于执行相机设备的操作。

斌擎科技 1400

Miniforge3部署教程,完美替代Anaconda3

大背景不介绍了,哎!直接上教程!

zzy_ucas的博客 1万+

正交试验-方差分析-数据展现形式

方差分析(ANOVA, Analysis of Variance)用于比较多个组之间的均值差异,确定因素对响应变量的显著性影响。示例分析。

m0_58326994的博客 1970

基于Transformers库的BERT模型:一个文本情感分类的实例解析

简介 本文来讲述BERT应用的一个例子,采用预训练好的BERT模型来进行演示。BERT的库来源于Transformers,这是一个由PyTorch编写的库,其集成了多个NLP领域SOTA的模型,比如bert、gpt-2、transformer xl等,并且可以自由选择已经预训练好的模型参数,我们可以基于这些参数进行进一步的训练调试。 Part 1: 利用BERT基于特征的方式进行建模 1、任务与数...

蓝天白云梦的csdn博客 2万+

S-function入门及案例详解(1)——S-function基础介绍及基本案例

本专题将用三篇文章对S-function进行介绍及其案例详解。欢迎关注~ 目录一、S-Function简介二、详解sfuntmpl函数2.1 sfuntmpl函数介绍2.2 mdlInitializeSizes函数2.3 mdlDerivatives函数2.4 mdlUpdate函数2.5 mdlOutputs函数2.6 mdlGetTimeOfNextVarHit函数2.7 mdlTerminate函数三、案例1——对波形的幅值进行放大3.1 案例分析3.2 案例详解3.3 输出波形四、案例2——对波形的

Wendy的博客 7万+

从时频谱图到智能感知:雷达信号处理的AI进化之路

本文探讨了人工智能在雷达信号处理中的革命性应用,特别是深度学习在时频谱图分析中的突破性进展。通过对比传统信号处理方法与AI驱动的解决方案,展示了CNN、3D CNN等模型在目标检测、行为识别等场景中的优势,并分析了数据获取、模型优化等关键技术挑战。AI赋能的雷达技术已广泛应用于智能交通、工业检测和医疗健康领域,展现出巨大的发展潜力。

weixin_29284201的博客 507

Python爬虫实战:如何高效抓取拼多多商品信息、销量与价格数据,破解反爬虫挑战

**摘要:**本文介绍利用Python爬虫技术抓取拼多多商品数据(价格、销量等)的方法与应用价值。通过分析拼多多商品页面的HTML结构,使用Requests和Selenium获取数据,并应对反爬虫机制(IP代理、请求头伪装等)。数据可存储于MongoDB或CSV用于市场监控、竞品分析等场景。文章涵盖技术选型、实战代码示例及反爬策略,为电商数据分析提供实用指导。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1671

Unidbg补环境实战:复现Shopee风控Native层运行环境

Android App风控已从HTTP层签名校验,演进为深度依赖Native层系统调用与硬件特征的多维验证。其核心原理在于通过JNI桥接Java与Native代码,调用openat、sysconf、getrandom等系统接口读取/proc、/sys、/dev等路径的真实状态,并结合SELinux策略、CPU拓扑、分区哈希等硬性指标构建设备可信画像。这种技术架构显著提升了对抗黑灰产的能力,但也对逆向分析与自动化调用提出更高要求——必须精准模拟底层环境而非仅Hook逻辑。Unidbg补环境正是为此而生:它支持

weixin_30533109的博客 639

【Python_PySide6学习笔记(二十四)】菜单栏QMenuBar类的基本用法

此篇文章中介绍 PySide6 中 QMenuBar 类的基本用法,包括"创建菜单栏"、"创建一级菜单"、"创建二级菜单"等,会持续更新,有需要的读者可以点赞收藏,也欢迎在评论区进行讨论。

禾戊之昂的博客 1624

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: 【鸿蒙实战开发】har和hsp的转换
下一篇: 【鸿蒙实战开发】基于HAR的跨模块C++头文件引用
普通网友
博客等级 码龄2年 7013粉丝 723原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值