#鸿蒙通关秘籍#如何使用HarmonyOS保存裁剪后的图片?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
墨s流年JSON

为了在HarmonyOS中保存裁剪后的PixelMap对象,可以通过以下步骤实现:

  1. 使用image.createImagePacker创建一个ImagePacker对象。
  2. 配置图像打包选项,包括文件格式和质量。
  3. 调用packing方法将PixelMap对象转换为ArrayBuffer格式。
  4. 将转换后的数据写入文件,并返回文件的路径。

以下是实现的代码:

export async function savePixelMap(context: Context, pm: PixelMap): Promise<string> {
  if (pm === null) {
    return '';
  }
  const imagePackerApi: image.ImagePacker = image.createImagePacker();
  const packOpts: image.PackingOption = { format: 'image/jpeg', quality: 30 };
  try {
    const data: ArrayBuffer = await imagePackerApi.packing(pm, packOpts);
    return await saveFile(context, data);
  } catch (err) {
    return '';
  }
}

async function saveFile(context: Context, data: ArrayBuffer): Promise<string> {
  let uri: string = context.filesDir + '/' + getTimeStr() + '.jpg';
  const file: fileIo.File = fs.openSync(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  fs.writeSync(file.fd, data);
  fs.closeSync(file);
  uri = 'file:/' + uri;
  return uri;
}

分享
微博
QQ
微信
回复
1天前
相关问题
如何编辑裁剪相册中图片
486浏览 • 1回复 待解决
使用SaveButton保存图片方式
556浏览 • 1回复 待解决
如何实现图片裁剪、旋转
413浏览 • 1回复 待解决
如何对相册图片进行编辑裁剪
1736浏览 • 1回复 待解决