鸿蒙多媒体分享 - PixelMap深拷贝案例 源码下载地址
介绍
在图片开发过程中经常会涉及到PixelMap的深拷贝,本例通过使用PixelMap的readPixelsToBuffer方法来实现深拷贝。在创建源PixelMap的时候,需要将解码参数设置为RGBA_8888,而在深拷贝创建目标PixelMap的时候需要将解码参数设置为RGBA_8888。
效果图预览
使用说明
- 进入页面,显示的即为rawfile中图片的PixelMap经过深拷贝过后的PixelMap对象。
- 点击底部的按钮,对原始PixelMap进行深拷贝后再根据相应的比例进行裁剪。
- 点击顶部的保存图标,可以保存当前图片。
实现思路
- PixelMap深拷贝方法。通过readPixelsToBuffer读取图片资源的PixelMap到ArrayBuffer,再通过createPixelMap得到目标PixelMap。
- 初始化时,通过深拷贝从原始PixelMap创建目标PixelMap。
- 调用crop方法对图片进行裁剪。
- 通过FileIO接口方法保存图片到具体路径。
高性能知识点
不涉及
工程结构&模块类型
├──entry/src/main/ets // ets 代码区 │ ├──constants │ │ └──CommonConstants.ets // 常量定义文件 │ ├──entryability │ │ └──EntryAbility.ets │ ├──util │ │ ├──CopyObj.ets // 业务层-图片深拷贝处理 │ │ └──FileUtil.ets // 业务层-图片保存 │ ├──model │ │ └──AdjustData.ets // 裁剪选项资源 │ └──pages │ └──Index.ets // 主页界面 └──entry/src/main/resources // 应用资源目录
模块依赖
不涉及
参考资料
- 位图操作。
- packing。