HarmonyOS鸿蒙Next开发案例:摄影照相类行业官方模板介绍(Part1:图像美化应用模板)

HarmonyOS鸿蒙Next开发案例:摄影照相类行业官方模板介绍(Part1:图像美化应用模板) 鸿蒙生态市场

💡摘要: 本模板来自华为生态市场(Huawei Partner Market),本文选取了摄影照相类行业的一个官方模板——图像美化应用模板,并进行了简要的介绍与分析。各位开发者伙伴们,更多行业模板与组件请进入生态市场查看!

一、概述

  1. 行业洞察(待补充) 1)行业痛点

  2. 优秀案例概览 基于以上行业分析,本期将介绍鸿蒙生态市场摄影照相类行业模板——图像美化应用模板,为行业提供常用功能的开发案例,提供了图片美颜、裁剪、添加文字、滤镜、贴纸等功能。模板主要分首页、我的两大模块

    • Stage开发模型 + 声明式UI开发范式
    • 分层架构设计 + 组件化拆分,支持开发者在开发时既可以选择完整使用模板,也可以根据需求单独选用其中的业务组件
    • 本模板已集成华为账号、华为支付等服务,只需做少量配置和定制即可快速实现华为账号登录、华为支付
首页 我的
首页 我的

本模板主要页面及核心功能如下所示:

美拍
 ├─ 首页
 │    ├─ 图片美化
 │    │    ├─ 图片美颜
 │    │    ├─ 图片裁剪
 │    │    ├─ 添加文字
 │    │    ├─ 添加滤镜   
 │    │    └─ 添加贴纸
 │    │ 
 │    ├─ 图片拼接
 │    │    ├─ 图片拼接
 │    │    ├─ 海报拼接
 │    │    └─ 模板拼接
 │    │ 
 │    └─ 图片保存
 │         └─ 保存至相册
 │    
 └─ 我的
      ├─ 登录
      │
      ├─ 开通会员
      │
      ├─ 设置
      │    ├─ 账号设置
      │    ├─ 保存设置
      │    │   ├─ 图片格式
      │    │   └─ 图片质量
      │    └─ 服务条款
      └─ 帮助与反馈

二、应用架构设计

1. 分层模块化设计

  • **产品定制层:**专注于满足不同设备或使用场景的个性化需求,作为应用的入口,是用户直接互动的界面。

    • 本实践暂时只支持直板机,为单HAP包形式,包含路由根节点、底部导航栏等。
  • **基础特性层:**用于存放相对独立的功能UI和业务逻辑实现。

    • 本实践的基础特性层将应用底部导航栏的每个选项拆分成一个独立的业务功能模块。
    • 每个功能模块都具备高内聚、低耦合、可定制的特点,支持产品的灵活部署。
  • **公共能力层:**存放公共能力,包括公共UI组件、数据管理、外部交互和工具库等共享功能。

    • 本实践的公共能力层分为公共基础能力和可分可合组件,均打包为HAR包被上层业务组件引用。
    • 公共基础能力包含日志、文件处理等工具类,公共类型定义,网络库,以及弹窗、加载等公共组件。
    • 可分可合组件将包含行业特点、可完全自闭环的能力抽出独立的组件模块,支持开发者在开发中单独集成使用,详见业务组件设计章节。

分层模块化设计

本模板详细工程结构可见工程结构章节。

2. 业务组件设计

为支持开发者单独获取特定场景的页面和功能,本模板将功能完全自闭环的部分能力抽离出独立的行业组件模块,不依赖公共基础能力包,开发者可以单独集成,开箱即用,降低使用难度。

业务组件设计

三、行业场景技术方案(待补充)

  1. 账号管理 1)场景说明 2)技术方案

  2. 图片美化 1)场景说明 2)技术方案

  3. 图片拼接 1)场景说明 2)技术方案

  4. 会员服务 1)场景说明 2)技术方案

四、模板代码

1. 工程结构

详细代码结构如下所示:

FitnessCenter  
├─common
│  └─src
│     └─main
│        └─ets
│           ├─components
│           │     IconAndTextView.ets                        // 图标文字显示组件
│           │     TitleBar.ets                               // 公共标题栏组件
│           │      
│           └─model
│                 DateUtil.ets                               // 日期时间工具
│                 MockService.ets                            // 模拟数据服务类
│                 PageParams.ets                             // 公共页面参数类
│                                 
├─components
│  └─picture_collage
│     └─src
│         └─main
│            └─ets
│               ├─components
│               │      CollageBar.ets                        // 拼接操作栏组件
│               │      DirectCollageComponent.ets            // 直接拼图图片区组件
│               │      ImageShowComponent.ets                // 图片展示公共组件
│               │      PosterCollage.ets                     // 海报拼图图片区组件
│               │      
│               ├─model
│               │      CollageModel.ets                      // 拼图参数类
│               │      
│               └─views
│                       PictureCollage.ets                   // 图片拼接组件
├─product
│  └─phone
│      └─src
│          └─main
│             └─ets
│                ├─entryability
│                │      EntryAbility.ets                     // 应用主窗口
│                │      
│                ├─pages
│                │      Index.ets                            // 应用入口页
│                │      MainPage.ets                         // 首页
│                │      Mine.ets                             // 我的
│                │
│                └─view
│                       StackView.ets                        // 首页图片堆叠组件
│                      
└─scenes
   ├─collage
   │   └─src
   │       └─main
   │          └─ets
   │             ├─generated
   │             │      RouterBuilder.ets                     // 路由构建类
   │             │      
   │             ├─model
   │             │      Constants.ets                         // 常量类
   │             │      
   │             └─pages
   │      	            PictureCollagePage.ets                // 图片拼接页
   ├─personal
   │   └─src
   │       └─main
   │          └─ets
   │             ├─components
   │             │      AggregatedPaymentPicker.ets           // 支付渠道模态弹框
   │             │      AgreementView.ets                     // 协议授权弹框
   │             │      DraftCard.ets                         // 草稿箱卡片组件
   │             │      MarterialCenterCard.ets               // 素材中心卡片组件
   │             │      OpenVipCard.ets                       // 开通会员卡片组件
   │             │      PrivacyTextSpan.ets                   // 协议文本组件
   │             │      SettingAndHelpCard.ets                // 帮助与反馈卡片组件
   │             │      UserCard.ets                          // 用户信息卡片组件
   │             │      
   │             ├─generated
   │             │      RouterBuilder.ets                     // 路由构建类
   │             │      
   │             ├─model
   │             │      Channel.ets                           // 渠道类
   │             │      Constants.ets                         // 常量类
   │             │      ErrorCodeEntity.ets                   // 请求错误码类
   │             │      
   │             └─pages
   │                    Help.ets                              // 帮助与反馈页
   │                    OpenVip.ets                           // 开通vip页
   │                    OtherLogin.ets                        // 其他方式登录页
   │                    QuickLoginPage.ets                    // 华为一键登录页
   │                    SaveSetting.ets                       // 保存设置页
   │                    Setting.ets                           // 设置页
   │                    Terms.ets                             // 服务条款页
   │
   └─picture_beautification
       └─src
           └─main
              └─ets
                 ├─components
                 │      AddTextComponent.ets                   // 添加文字组件
                 │      AddTextToolBar.ets                     // 添加文字工具栏
                 │      BeautyActionBar.ets                    // 图片美化总操作栏
                 │      BeautyActionSimplyBar.ets              // 图片美化简化操作栏
                 │      BeautyToolBar.ets                      // 一键美颜工具栏
                 │      CarouseCutToolBar.ets                  // 图片裁剪工具栏
                 │      FilterToolBar.ets                      // 图片滤镜工具栏
                 │      StickerComponent.ets                   // 添加贴纸组件
                 │      StickerToolBar.ets                     // 添加贴纸工具栏
                 │      TextEditDialog.ets                     // 编辑文字弹窗
                 │    
                 ├─generated
                 │      RouterBuilder.ets                     // 路由构建类
                 │      
                 ├─model
                 │      BeautificationParam.ets               // 图片美化页面参数
                 │      Constants.ets                         // 常量类
                 │      
                 ├─pages
                   │      PictureBeautification.ets             // 图片美化页
                   │
                   └─util
                          ImageProcessingUtil.ets               // 图片处理工具类
    

2. 关键代码解读(待补充)

  • 待补充

3. 模板集成

本模板提供了两种代码集成方式,供开发者自由使用。

1)整体集成

开发者可以选择直接基于模板工程开发自己的应用工程。

  • 模板代码获取:

  • 打开模板工程,根据README说明中的快速入门章节,将自己的应用信息配置在模板工程内,即可运行并查看模板效果。 整体集成

  • 对接开发者自己的服务器接口,转换数据结构,展示真实的云侧数据。

    • 将commons/lib_common/src/main/ets/httprequest/HttpRequestApi.ets文件中的mock接口替换为真实的服务器接口。 替换接口
    • 在commons/lib_common/src/main/ets/httprequest/HttpRequest.ets文件中将云侧开发者自定义的数据结构转换为端侧数据结构。 数据结构转换
  • 根据自己的业务内容修改模板,进行定制化开发。

2)按需集成

若开发者已搭建好自己的应用工程,但暂未实现其中的部分场景能力,可以选择取用其中的业务组件,集成在自己的工程中。

  • 组件代码获取:

  • 下载组件源码,根据README中的说明,将组件包配置在自己的工程中。 按需集成

  • 根据API参考和示例代码,将组件集成在自己的对应场景中。


更多关于HarmonyOS鸿蒙Next开发案例:摄影照相类行业官方模板介绍(Part1:图像美化应用模板)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

鸿蒙Next的图像美化应用模板基于ArkUI开发框架实现,主要包含三大功能模块:

  1. 图像处理引擎采用鸿蒙原生AI Kit提供的人像分割、滤镜渲染能力;
  2. 界面布局使用声明式UI范式,支持自适应多设备预览;
  3. 媒体文件管理通过MediaLibrary接口实现本地相册访问。

该模板已集成基础美颜、贴纸、调色功能,开发者可直接调用HarmonyOS提供的图像处理SDK进行二次开发,无需自行实现底层算法。

更多关于HarmonyOS鸿蒙Next开发案例:摄影照相类行业官方模板介绍(Part1:图像美化应用模板)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个HarmonyOS Next的图像美化应用模板提供了完整的开发框架和功能模块,非常适合快速开发摄影类应用。模板采用分层架构设计,主要特点包括:

  1. 模块化设计清晰,分为产品定制层、基础特性层和公共能力层,便于维护和扩展
  2. 已集成华为账号登录和支付功能,减少开发工作量
  3. 提供图片处理的核心功能:美颜、裁剪、滤镜、贴纸、文字添加等
  4. 支持两种集成方式:整体工程集成或按需组件集成

关键代码结构组织合理,公共组件和业务逻辑分离。图片处理相关功能集中在picture_beautification模块,包含各种工具条组件和图片处理工具类。

对于想快速开发图片处理应用的开发者,这个模板可以节省大量基础工作,只需关注业务定制即可。分层架构也便于后续功能扩展和维护。

回到顶部