登录社区云,与社区用户共同成长
邀请您加入社区
上一篇讲美颜预设,这一篇继续看补光和水印。补光解决的是拍摄时的即时视觉反馈,水印解决的是照片落盘后的信息保留。两者看起来都在效果面板里,但进入工程链路的位置不同。 补光主要影响预览层,用户选择暖光、冷光或玫瑰光后,页面用叠层反馈氛围。水印则要在拍摄前固化成 pending 状态,并在图片写入后真正调用服务层把文字写进文件。 这一篇继续围绕 21 天「智能相机开发实战」训练营展开
相机 App 的效果设置很容易做成一堆参数开关,但训练营项目选择了更贴近用户理解的表达:自然、人像、清透。它们不直接暴露底层算法参数,而是作为拍摄语义进入页面状态、拍摄摘要和后续记录。 这一篇我们不讨论美颜算法本身,而是看工程上如何把“可理解的预设”变成稳定的状态管理。对于智能相机,用户不一定关心每个参数值,但他需要知道当前拍出来的照片用了什么风格。 这一篇继续围绕 21 天「
从这一篇开始,我们进入拍摄体验的“用户选择层”。相机能力检测、双预览、单拍和顺序双拍前面都已经拆过,但真正交给用户时,界面不能把所有工程分支都摊开。用户只需要知道当前是在单拍还是双拍,至于设备是否支持前后摄并发、是否需要降级到顺序拍,应该由工程内部完成。 双镜记忆相机里的模式切换有两个核心目标:第一,按钮选中态必须和真实会话一致;第二,拍摄按钮被点击时必须进入正确链路。否则用户
第 38 篇把双拍主链路收束起来。并发双摄触发后,后摄和前摄会分别产生 JPEG 回调;只有两路都交付,项目才尝试合成双镜作品。合成成功时记录指向 compositePath,合成失败时保留原始两张图,最终都进入 GalleryMoment 和相册刷新闭环。 本文是 21 天「智能相机开发实战」训练营中的一篇实操记录。所有代码片段都来自当前项目,配图围绕运行页面和源码关键路径展
第 37 篇看图像合成服务。前后两路照片交付以后,项目希望生成一张更适合展示和分享的双镜作品:后摄大图作为主画面,前摄图以圆形小窗叠加。这个职责被放进 DualPhotoComposerService,页面层只负责传入 backPath、frontPath 和 compositePath。 本文是 21 天「智能相机开发实战」训练营中的一篇实操记录。所有代码片段都来自当前项目,
第 36 篇讲降级。不是所有设备都支持前后摄同时工作,但训练营项目不能因为并发为空就放弃双镜作品。项目提供顺序双拍:先用单摄预览拍后摄,再切到前摄拍第二张,最终仍复用保存、合成和入库链路。 本文是 21 天「智能相机开发实战」训练营中的一篇实操记录。所有代码片段都来自当前项目,配图围绕运行页面和源码关键路径展开,读完以后可以直接回到工程里按函数名定位。 本篇目标 理解设备能力不
第 35 篇拆双预览。能力探测通过以后,项目还要准备两个 Surface、两个 CameraInput、两个 PreviewOutput、两个 PhotoOutput 和两组回调。只有后摄主画面和前摄小窗都开始出帧,页面才能认为双预览可用。 本文是 21 天「智能相机开发实战」训练营中的一篇实操记录。所有代码片段都来自当前项目,配图围绕运行页面和源码关键路径展开,读完以后可以直
第 34 篇进入双拍能力。前后双摄同时工作不是“设备有前摄和后摄就一定能开”,HarmonyOS CameraKit 需要通过并发能力查询确认。项目先拿到前后摄设备,再调用 getCameraConcurrentInfos,只有返回并发信息时才进入双摄预览;为空时走单摄或顺序双拍。 本文是 21 天「智能相机开发实战」训练营中的一篇实操记录。所有代码片段都来自当前项目,配图围绕
第 33 篇把前面几篇串起来。拍照完成后,项目不能只把一条记录插进数组,还要同步选中记录、相册分组、地图标记、预览浮层、推荐状态和持久化数据。appendGalleryRecord 是这个闭环的中心:它让一次拍摄真正落到用户可见的相册和地图体验里。 本文是 21 天「智能相机开发实战」训练营中的一篇实操记录。所有代码片段都来自当前项目,配图围绕运行页面和源码关键路径展开,读完以
第 32 篇进入服务层。拍照页生成的是一次拍摄结果,真正能被相册、地图、隐私空间、同步模块复用的是 GalleryMoment 记录。GalleryRecordService 负责模型、持久化、Uri 规范化和记录创建。它让项目不必在每个页面重复处理照片路径、同步脏标记和 AI 状态。 本文是 21 天「智能相机开发实战」训练营中的一篇实操记录。所有代码片段都来自当前项目,配图