评论

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


​​

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


点赞 0
收藏
评论
登录 后发表内容