| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 22-Oct-2025 | - | 34 | 32 | ||
| entry/ | 22-Oct-2025 | - | 1,797 | 1,422 | ||
| hvigor/ | 22-Oct-2025 | - | 37 | 36 | ||
| screenshots/ | 22-Oct-2025 | - | ||||
| .gitignore | D | 22-Oct-2025 | 133 | 12 | 12 | |
| README.md | D | 22-Oct-2025 | 4.4 KiB | 101 | 81 | |
| build-profile.json5 | D | 22-Oct-2025 | 1.3 KiB | 56 | 56 | |
| code-linter.json5 | D | 22-Oct-2025 | 957 | 34 | 34 | |
| hvigorfile.ts | D | 22-Oct-2025 | 842 | 21 | 5 | |
| oh-package.json5 | D | 22-Oct-2025 | 808 | 25 | 24 | |
| ohosTest.md | D | 22-Oct-2025 | 1.2 KiB | 12 | 10 |
README.md
1# NdkPixelMap_js 2 3## 介绍 4 5本示例专注于PixelMap功能的演示,实现简单的图片解码、图像变换、PixelMap数据处理以及编码功能。 6 7## 效果预览 8 9| 主界面 | 图片解码显示 | 10| -------------------------------------------------------- | -------------------------------------------------------- | 11|  |  | 12 13| PixelMap处理结果 | 图片编码保存 | 14| -------------------------------------------------------- | -------------------------------------------------------- | 15|  |  | 16 17使用说明: 18 191. 启动应用,进入主界面。 202. 在主界面,可以点击图片解码、图像变换、处理PixelMap数据、图片编码进入对应功能界面。 213. 进入图片解码界面,显示已解码完成的图片。 224. 进入图像变换界面,点击IMAGE按钮,调用TestGetImageInfo、TestAccessPixels、TestUnAccessPixels接口。 235. 进入处理PixelMap数据界面,点击PixelMap按钮,调用Transform接口,展示处理后的结果图片。 246. 进入图片编码界面,点击图片编码按钮,将图片编码并保存为文件。 25 26## 工程目录 27 28``` 29NdkPixelMap_js 30entry/src/main/cpp/ 31├── types 32│ └── libentry 33│ └── Index.d.ts (声明Napi接口,供ts调用) 34├── CMakeLists.txt (CMake编译配置文件) 35├── hello.cpp (C++源码) 36└── napi_init.cpp (初始化Napi接口) 37entry/src/main/ets/ 38├── common 39│ └── Logger.ts (logger日志类) 40├── pages 41│ └── Index.ets (首页导航界面) 42├── pixelmap 43│ └── pages 44│ ├── DecodeImages.ets (图片解码) 45│ ├── EncodeImages.ets (图片编码) 46│ ├── ProcessPixelMapData.ets (处理PixelMap数据) 47│ └── TransfromImages.ets (图像变换) 48entry/src/main/resources/ 49└── rawfile 50 └── example.jpg(图片资源) 51entry/src/ohos/ets/ 52├── test 53│ ├── Ability.test.ets (UI测试代码) 54│ └── List.test.ets (测试套件列表) 55└── utils 56 └── RecourceUtil.ets (将资源文件转化为字符串类型) 57``` 58 59## 具体实现 60 61+ 图片解码功能在hello中实现,源码参考hello.cpp: 62 + 初始化ResourceManager:通过OH_ResourceManager_InitNativeResourceManager完成。 63 + 加载Raw文件:使用OHResourceManager_OpenRawFile接口实现。 64 + 构建ImageSource:通过OH_ImageSource_Create接口创建ImageSource。 65 + 获取PixelMap:调用OH_ImageSource_CreatePixelMap接口生成位图对象。 66 + 读取图片尺寸:调用OH_ImageSource_GetImageInfo获取图片宽度高度。 67+ 图像变换功能在hello中实现,源码参考hello.cpp: 68 + 获取图片信息:通过OH_GetImageInfo接口完成。 69 + 锁定像素数据:通过OH_AccessPixels接口,获取PixelMap对象中数据内存地址,并将其锁定。 70 + 释放像素数据:通过OH_UnAccessPixels接口,释放PixelMap对象中数据内存地址 71+ 处理PixelMap数据功能在hello中实现,源码参考hello.cpp: 72 + 获取PixelMap:调用OH_PixelMap_InitNativePixelMap接口初始化NativePixelMap。 73 + 处理PixelMap:调用OH_PixelMap_SetOpacity、OH_PixelMap_Scale、OH_PixelMap_Translate、OH_PixelMap_Rotate、OH_PixelMap_Flip等接口设置透明度、缩放、偏移、旋转、翻转。 74+ 图片编码功能在hello中实现,源码参考hello.cpp: 75 + 图片编码:创建编码器对象,设置参数,获取文件描述符,调用OH_ImagePacker_PackToFile保存PixelMap到文件。 76 77## 相关权限 78 79不涉及。 80 81## 依赖 82 83不涉及。 84 85## 约束和限制 86 871. 本示例支持标准系统上运行,支持设备:RK3568; 882. 本示例支持API14版本SDK,版本号:5.0.2.57; 893. 本示例已支持使DevEco Studio 5.0.1 Release (构建版本:5.0.5.306,构建 2024年12月6日)编译运行 90 91## 下载 92 93如需单独下载本工程,执行如下命令: 94 95``` 96git init 97git config core.sparsecheckout true 98echo code/DocsSample/Media/Image/NdkPixelMap_js/ > .git/info/sparse-checkout 99git remote add origin OpenHarmony/applications_app_samples 100git pull origin master 101```