HarmonyOS鸿蒙Next相册里面的视频、GIF、图片如何获取缩略图地址而不是pixelMap

HarmonyOS鸿蒙Next相册里面的视频、GIF、图片如何获取缩略图地址而不是pixelMap Flutter端调用鸿蒙端原始相册,比如im聊天页面,需要在显示时显示缩略图,并且记录到数据库中缩略图的地址和原图地址,现在鸿蒙的api返回的缩略图是pixelMap,这个到Flutter端不能满足需求,请问,是否有像Android和iOS一样的缩略图地址呢?如何获取?

2 回复

可以在鸿蒙里面将拿到的pixelMap存到沙箱路径,获取沙箱路径的path:

async packingPixelMap2Jpg(pixelMap: image.PixelMap): Promise<ArrayBuffer> {
  // pixel 转 jpg
  // 创建ImagePacker实例
  const imagePackerApi = image.createImagePacker();
  // 设置打包参数
  // format:图片打包格式,只支持 jpg 和 webp
  // quality:JPEG 编码输出图片质量
  // bufferSize:图片大小,默认 10M
  const packOpts: image.PackingOption = { format: "image/png", quality: 98 };
  let imageBuffer: ArrayBuffer = new ArrayBuffer(10);
  try {
    // 图片压缩或重新打包
    imageBuffer = await imagePackerApi.packing(pixelMap, packOpts);
  } catch (err) {
    console.error(`Invoke packingPixelMap2Jpg failed, err: ${JSON.stringify(err)}`);
  }
  return imageBuffer;
}

更多关于HarmonyOS鸿蒙Next相册里面的视频、GIF、图片如何获取缩略图地址而不是pixelMap的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,获取相册中视频、GIF、图片的缩略图地址,可以通过PhotoAsset类的getThumbnail方法实现。该方法返回缩略图的URI,而不是PixelMap。具体步骤如下:

  1. 使用PhotoAsset对象调用getThumbnail方法。
  2. 设置缩略图的大小和质量参数。
  3. 获取缩略图的URI地址。

示例代码:

PhotoAsset photoAsset = ...; // 获取PhotoAsset对象
Uri thumbnailUri = photoAsset.getThumbnail(width, height, quality);
回到顶部