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或以上版本
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或以上版本