• Home
Name Date Size #Lines LOC

..--

AppScope/22-Oct-2025-3532

entry/22-Oct-2025-4,4713,762

hvigor/22-Oct-2025-3635

screenshots/22-Oct-2025-

.gitignoreD22-Oct-2025171 1313

README.mdD22-Oct-20255.6 KiB9675

build-profile.json5D22-Oct-20251.2 KiB5150

hvigorfile.tsD22-Oct-2025843 225

oh-package.json5D22-Oct-2025902 3029

ohosTest.mdD22-Oct-20253.8 KiB2422

README.md

1# ImageEffect
2
3## 介绍
4
5本示例依照指南 媒体->Image Kit(图片处理服务)->图片开发指导(C/C++)->[使用ImageEffect编辑图片](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/media/image/image-effect-guidelines.md)进行编写。
6
7本示例主要功能如下:
8- 通过ImageEffect提供的Native API接口添加滤镜或滤镜链,对输入图像应用滤镜效果。
9- 注册实现了自定义亮度滤镜与自定义裁剪滤镜。
10- 通过ImageEffect提供的Native API接口快速实现单个滤镜的处理效果。
11- 通过ImageEffect提供的Native API接口查询滤镜能力信息。
12
13## 效果预览
14
15| 主界面                                                              | 设置滤镜                                                                     | 选择输入类型                                                                         | 查询滤镜信息                                                               |
16|------------------------------------------------------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|----------------------------------------------------------------------|
17| ![ImageEffect_MainPage](./screenshots/ImageEffect_MainPage.jpeg) | ![ImageEffect_ImageEffect_Filter](./screenshots/ImageEffect_Filter.jpeg) | ![ImageEffect_ImageEffect_InputType](./screenshots/ImageEffect_InputType.jpeg) | ![ImageEffect_FilterInfo](./screenshots/ImageEffect_FilterInfo.jpeg) |
18
19
20使用说明:
211. 输入类型选择:在参数设置页面中,选择输入类型,显示区域将切换为对应的输入类型。
222. 调整滤镜参数:在参数设置页面中,选择所需的滤镜选项,并通过拖动滑动条来调节各个滤镜算子的参数。
233. 滤镜算子选择:可以选择裁剪、缩放、旋转等内置的算子,或选择自定义亮度、自定义剪裁滤镜。本示例允许同时选择多个滤镜以形成滤镜链。
244. 确认与保存设置:调整完毕后,点击确认按钮以保存所设置的滤镜参数。
255. 应用滤镜效果:返回图片展示页面后,点击Apply按钮,系统将展现经过滤镜处理后的图片效果。
266. 重置图片效果:如需撤销所做改动,点击Reset按钮,图片将恢复至调整前状态。
277. 查看滤镜详细信息:在参数设置页面,点击滑块旁的搜索图标,系统将展示一个详细信息页面,提供所选滤镜相关信息。
288. 查询滤镜信息:点击查询按钮并选择查询参数来获取滤镜信息页面,该页面将显示所应用的滤镜个数和名称信息。
29
30## 工程目录
31
32```
33ImageEffect
34entry/src/main/cpp/
35├── CMakeLists.txt(CMake构建配置文件)
36├── backend
37│   ├── image_edit.cpp(图片编辑)
38│   └── image_edit.h
39├── logging.h(Log相关定义声明)
40├── napi_init.cpp(图片处理功能注册)
41└── utils
42    ├── common_utils.cpp(字符处理工具函数)
43    ├── common_utils.h
44    ├── json_utils.cpp(json格式处理工具函数)
45    ├── json_utils.h
46    ├── pixelmap_helper.cpp(图片解码)
47    └── pixelmap_helper.h
48entry/src/main/ets/
49├── pages
50│   └── ImageEditPage.ets(图片显示、设置页面)
51└── utils
52    └── ImageUtils.ets(图片资源获取处理)
53entry/src/ohosTest/ets/
54└── test
55    ├── Ability.test.ets (UI测试代码)
56    └── List.test.ets (测试套件列表)
57```
58
59## 具体实现
60
61+ 图片编辑功能在ImageEditPage中实现,源码参考ImageEditPage.ets:
62    + 输入类型选择:在图片展示页面点击设置按钮弹出设置页面,选择输入类型。
63    + 滤镜选择:在图片展示页面点击设置按钮弹出设置页面,选择滤镜并设置参数,点击确认按钮保存滤镜参数选择。
64    + 滤镜生效:点击Apply按钮,展示经过滤镜处理后的图片效果,点击Reset按钮,图片恢复至调整前状态。
65    + 滤镜查询:点击滑动条后面的查询图标可查询单个滤镜信息,点击下方查询按钮可查询对应条件的滤镜信息。
66
67+ native接口在image_edit中实现,源码参考image_edit.cpp:
68    - 应用滤镜:应用滤镜处理需要加载libimage_effect.so,对传入的输入类型进行处理,使用Brightness对图像进行亮度处理使用Contrast对图像进行对比度处理,使用Crop对图像进行裁剪处理,也可以自定义滤镜对图像进行处理。
69    - 滤镜查询:接口实现对滤镜的查询功能,通过OH_EffectFilter_LookupFilterInfo接口方法查询单个滤镜的详细信息,通过OH_EffectFilter_LookupFilters接口方法查询指定条件下的滤镜数量以及信息。
70
71## 相关权限
72
73[ohos.permission.CAMERA](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all-user.md#ohospermissioncamera)
74
75## 依赖
76
77不涉及。
78
79## 约束和限制
80
811. 本示例支持标准系统上运行,支持设备:RK3568;
822. 本示例支持API14版本SDK,版本号:5.0.2.57;
833. 本示例已支持使DevEco Studio 5.0.1 Release (构建版本:5.0.5.306,构建 2024年12月6日)编译运行
844. 本示例涉及系统相机,由相机功能异常导致的OHNativeWindow场景无画面问题,可通过更换相机功能正常的镜像解决。
85
86## 下载
87
88如需单独下载本工程,执行如下命令:
89
90```
91git init
92git config core.sparsecheckout true
93echo code/DocsSample/Media/Image/ImageEffect/ > .git/info/sparse-checkout
94git remote add origin OpenHarmony/applications_app_samples
95git pull origin master
96```