HarmonyOS 鸿蒙Next openharmony怎么把屏幕截图自动保存进图库里面

HarmonyOS 鸿蒙Next openharmony怎么把屏幕截图自动保存进图库里面 我通过screenshot.save()获取屏幕截图的pixlmap对象然后把它编码成jpg图片格式,现在要怎么样才能把他保存进相册或者是图库里面呢,有大佬知道的吗,指点一下,球球了。

13 回复

将 PixelMap 保存至相册,记得申请权限

export async function encode(pixelMap: PixelMap) {  // Packing image.
  const imagePackerApi = image.createImagePacker();
  const packOptions: image.PackingOption = {
    format: 'image/jpeg',
    quality: 100
  }
  const imageData = await imagePackerApi.packing(pixelMap, packOptions);
  console.info(`imageData's length is ${imageData.byteLength}`)
  // Get album's path.
  const context = getContext(this);
  const media = mediaLibrary.getMediaLibrary(context);
  const publicPath = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE);
  const currentTime = new Date().getTime();
  // Create image asset.
  const imageAssetInfo = await media.createAsset(
    mediaLibrary.MediaType.IMAGE,
    `image_${currentTime}.jpg`,
    publicPath
  );
  const imageFd = await imageAssetInfo.open('rw');
  await fs.write(imageFd, imageData);
  // Image resource release.
  await imageAssetInfo.close(imageFd);
  imagePackerApi.release();
  await media.release();
}

更多关于HarmonyOS 鸿蒙Next openharmony怎么把屏幕截图自动保存进图库里面的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我现在用选择器存进去了,有时间试一下你的方法,谢谢老哥的指点,

您好 有这部分的代码吗?方便截图一下吗?

我想做的是将一个图片保存到相册 但是官方的PhotoViewPicker.save()方法没得任何反应,不知道怎么做。

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

没有反应就是正常的呀,保存之后还要把图片编码什么的,

使用@ohos.file.fs模块的fs.openSync进行保存(链接

这种貌似需要路径,api使用pixelMap.getPixelBytesNumber是图像像素的总字节数,不知道可不可以直接打印路径的方法。

我现在的方法是通过screenshot.save()获取屏幕截图的pixlmap对象然后把它编码成jpg图片格式,再通过PhotoViewPicker选择器保存在相册里面,还是不能自动保存到相册里面,官方示例有一个示例可以,但是我看不懂,

我一开始是保存在沙箱目录下,不过每次都要先下载到windows文件里面,再通过命令推进开发板里,然后我就不用这个方法了。

总的来说,HarmonyOS是一款非常优秀的操作系统,期待它能在未来带给我们更多惊喜!

我屏幕下拉的截图按钮截到的图片可以在这里找得到

这个是截到的图

cke_7203.jpeg

这个是用命令查到的结果

cke_4271.png cke_3976.png

嗯嗯,我知道在这个路径下,

cke_240.png

可能是在他烧录后的源码镜像目录某个地方

回到顶部