文件最后提交记录最后更新时间
add ImageKit Signed-off-by: zhaona45 <zhaona45@huawei.com> 5 个月前
!9629 merge xmp/0527 into master XMP元数据指导指南示例 Created-by: zhangjianyu21 Commit-by: zhangjianyu21 Merged-by: openharmony_ci Description: **IssueNo**: https://gitcode.com/openharmony/applications_app_samples/issues/9299?ref=&did=4050468#tid-4050468 **Description**: 新增编辑图片XMP元数据指南文档对应的示例代码 **Sig**: SIG_Sample **Feature or Bugfix**: Feature **Binary Source**: Yes **编译测试结果**:Pass ![image.png](https://raw.gitcode.com/user-images/assets/4372488/42404393-4eb2-49b2-82bc-23bb0961439a/image.png 'image.png') **测试用例测试结果**:(Pass/Fail/评估不涉及) **Signed-off-by:** ### L0新增用例自检结果 - [ ] 是,有新增L0用例,且完成自检 - [x] 否 See merge request: openharmony/applications_app_samples!96293 天前
add ImageKit Signed-off-by: zhaona45 <zhaona45@huawei.com> 5 个月前
add transcoding Signed-off-by: zhaona45 <zhaona45@huawei.com> 5 个月前
add ImageKit Signed-off-by: zhaona45 <zhaona45@huawei.com> 5 个月前
XMP元数据指导指南示例 Signed-off-by: zhangjianyu21 <zhangjianyu21@h-partners.com> Change-Id: I75817b2074b65191b67fe2b169bf4e2f7582a73c 3 天前
sample示例 Signed-off-by: zhangjianyu21 <zhangjianyu21@h-partners.com> 3 天前
add ImageKit Signed-off-by: zhaona45 <zhaona45@huawei.com> 5 个月前
add ImageKit Signed-off-by: zhaona45 <zhaona45@huawei.com> 5 个月前
add ImageKit Signed-off-by: zhaona45 <zhaona45@huawei.com> 5 个月前
README.md

Image开发指导(ArkTS)

介绍

此Sample为开发指南中图片**开发指导(ArkTS)**章节中部分示例代码的工程。包含图片编解码,图片接收,内存分配,图片转码、图片Exif信息和图片XMP元数据的相关操作。

效果预览

index页面 图片解码页面示例 图片编码页面示例
Image Image Image

使用说明:

1.安装应用,弹出权限允许界面,点击“允许”按钮,弹出菜单后,根据需要点击按钮跳转到不同功能的界面。

2.从菜单页面,点击“跳转到图片解码页面”按钮,进入图片解码页面,首先选择解码资源类型,然后选择解码方式进行解码,在解码结束后点击“资源释放”按钮进行资源的释放。

3.从菜单页面,点击“跳转到多图解码页面”按钮,进入多图解码页面,首先选择解码资源类型,然后选择解码方式进行解码,在解码结束后点击“资源释放”按钮进行资源的释放。

4.从菜单页面,点击“跳转到内存申请页面”按钮,进入内存申请页面,首先选择内存申请方式进行解码,在解码结束后点击“资源释放”按钮进行资源的释放。

5.从菜单页面,点击“跳转到图片编码页面”按钮,进入图片编码页面,首先选择编码资源类型,然后选择编码方式进行编码,在编码结束后点击“资源释放”按钮进行资源的释放。

6.从菜单页面,点击“跳转到多图编码页面”按钮,进入多图编码页面,首先选择编码资源类型,然后选择编码方式进行编码,在编码结束后点击“资源释放”按钮进行资源的释放。

7.从菜单页面,点击“跳转到图片Exif信息编辑页面”按钮,进入Exif信息编辑页面,首先选择propertyKey的值,然后获取其Exif信息。在操作结束后点击“资源释放”按钮进行资源的释放。

8.从菜单页面,点击“跳转到图片Exif信息编辑页面”按钮,进入Exif信息编辑页面,首先选择propertyKey的值,然后输入要修改value值, 点击“修改Exif信息”按钮修改Exif信息。在操作结束后点击“资源释放”按钮进行资源的释放。

9.从菜单页面,点击“跳转到图片XMP信息编辑页面”按钮,进入XMP元数据编辑页面,可依次触发创建/读取/编辑/写回以及路径语法示例操作。在操作结束后点击“资源释放”按钮进行资源的释放。

10.从菜单页面,点击“跳转到图片接收页面”按钮,进入图片接收页面,可获取到新创建的Receiver的surfaceID,点击“触发相机”按钮,可触发“imageArrival”回调函数。

11.从菜单页面,点击“跳转到转码页面”按钮,进入转码页面,点击“触发相机”按钮,可将将HEIF图片转码成JPEG图片。

工程目录

├── AppScope
├── README.md
├── build-profile.json5
├── entry
│   ├── build-profile.json5
│   ├── hvigorfile.ts
│   ├── oh-package.json5
│   └── src
│       ├── main
│       │   ├── ets
│       │   │   ├── entryability
│       │   │   │   └── EntryAbility.ts
│       │   │   ├── entrybackupability
│       │   │   │   └── entrybackupability.ts
│       │   │   ├── pages
│       │   │   │   └── Index.ets  // 菜单页面。
│       │   │   │   └── AllocateMemory.ets // 内存分配页面。
│       │   │   │   └── DecodingPicture.ets // 多图解码页面。
│       │   │   │   └── DecodingPixelMap.ets // 图片解码页面。
│       │   │   │   └── EditExif.ets // Exif信息编辑页面。
│       │   │   │   └── EditXMP.ets // XMP元数据编辑页面。
│       │   │   │   └── EncodingPicture.ets // 多图解码页面。
│       │   │   │   └── EncodingPixelMap.ets // 图片编码页面。
│       │   │   │   └── ImageReceiver.ets // receiver调用页面。
│       │   │   │   └── Transcoding.ets // 转码调用页面。
│       │   │   └── tools
│       │   │       ├── CodecUtility.ets // 编解码相关接口。
│       │   │       ├── components.ets    // 资源选择映射函数。
│       │   │       └── ExifUtility.ets    // Exif相关接口。
│       │   │       └── XMPUtility.ets    // XMP元数据相关接口。
│       │   │       └── ReceiverUtility.ets    // receiver相关接口。
│       │   │       └── TranscodingUtility.ets    // 转码相关接口。
│       │   ├── module.json5
│       │   └── resources
│       │       ├── base
│       │       ├── dark
│       │       ├── rawfile
│       └── ohosTest
│       │    ├── ets
│       │    │   ├── test
│       │    │   │   ├── Ability.test.ets
│       │    │   │   ├── Allocator.test.ets
│       │    │   │   ├── Codec.test.ets
│       │    │   │   ├── Exif.test.ets
│       │    │   │   ├── List.test.ets
│       │    │   │   ├── Receiver.test.ets
│       │    │   │   └── Transcoding.test.ets
│       │    ├── module.json5
│       └── test
│           ├── List.test.ets
│           ├── LocalUnit.test.ets
├── hvigor
│   ├── hvigor-config.json5
├── hvigorfile.ts
├── oh-package.json5
└── screenshots

具体实现

  • 图片编解码,多图编解码,内存申请等功能的接口调用均封装在CodecUtility中实现,源码参考CodecUtility.ets
  • Exif信息获取与修改功能的接口调用封装在ExifUtility中实现,源码参考ExifUtility.ets
  • XMP元数据的读取、编辑与路径语法示例接口调用封装在XMPUtility中实现,源码参考XMPUtility.ets
  • 图片接收功能的接口调用封装在ReceiverUtility中实现,源码参考ReceiverUtility.ets
  • 图片转码功能的接口调用封装在TranscodingUtility中实现,源码参考TranscodingUtility.ets

相关权限

相机相关权限,文件读写权限。

依赖

不涉及。

约束与限制

1.本示例支持标准系统上运行,支持设备:RK3568;

2.本示例支持API20版本SDK,版本号: 6.0.0.43 ;

3.本示例已支持使Build Version: 6.0.0.43, built on August 24, 2025;

4.高等级APL特殊签名说明:无;

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/DocsSample/Media/Image/ImageArkTSSample/ > .git/info/sparse-checkout
git remote add origin https://gitcode.com/openharmony/applications_app_samples.git
git pull origin master