鸿蒙Next,图片上传01(扩展02截图保存到相册)-组件截图另通过沙箱保存到相册

​ 1. componentSnapShot 组件截图的get方法,得到 PixelMap 像素图像数据

@ohos.arkui.componentSnapshot (组件截图)-UI界面-ArkTS API-ArkUI(方舟UI框架)-应用框架 - 华为HarmonyOS开发者

// 进行截图

const pixelMap = await componentSnapshot.get('share')

图片

2.ImagePacker 打包 PixelMap 数据,转成二进制 ArrayBuffer 图片数据

// 图片数据
//ImagePacker 打包 PixelMap 数据

const imagePacker = image.createImagePacker()

//转成二进制 ArrayBuffer 图片数据
const arrayBuffer = await imagePackerApi.packToData(pixelMap, { format: "image/jpeg", quality: 98 })

3.ArrayBuffer 图片数据写入缓存目录,生成图片

○获取上下文
○定义图片的存储路径 ctx.cacheDir + '/' + Date.now() + '.jpeg'
○通过fileIo以 创建 或 读写 的方式打开文件
○通过fileIo同步把二进制数据写入文件
○同步关闭文件
○提示用户

// 存储图片

const ctx = getContext(this)
const imagePath = ctx.cacheDir + '/' + Date.now() + '.jpeg'
const file = fileIo.openSync(imagePath, fileIo.OpenMode.CREATE | fileIo.OpenMode.READ_WRITE)
fileIo.writeSync(file.fd, arrayBuffer)
fileIo.closeSync(file.fd)
promptAction.showToast({ message: '保存成功' })

适用HarmonyOS NEXT / API12或以上版本

你可能感兴趣的:(harmonyos)