[HarmonyOS Next示例代码] 鸿蒙多媒体分享 - PixelMap深拷贝案例

 鸿蒙多媒体分享 - PixelMap深拷贝案例 源码下载地址

介绍

在图片开发过程中经常会涉及到PixelMap的深拷贝,本例通过使用PixelMap的readPixelsToBuffer方法来实现深拷贝。在创建源PixelMap的时候,需要将解码参数设置为RGBA_8888,而在深拷贝创建目标PixelMap的时候需要将解码参数设置为RGBA_8888。

效果图预览

使用说明

  1. 进入页面,显示的即为rawfile中图片的PixelMap经过深拷贝过后的PixelMap对象。
  2. 点击底部的按钮,对原始PixelMap进行深拷贝后再根据相应的比例进行裁剪。
  3. 点击顶部的保存图标,可以保存当前图片。

实现思路

  1. PixelMap深拷贝方法。通过readPixelsToBuffer读取图片资源的PixelMap到ArrayBuffer,再通过createPixelMap得到目标PixelMap。
  2. 初始化时,通过深拷贝从原始PixelMap创建目标PixelMap。
  3. 调用crop方法对图片进行裁剪。
  4. 通过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                   // 应用资源目录

模块依赖

不涉及

参考资料

  1. 位图操作。
  2. packing。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值