如何将PixelMap保存为沙箱 HarmonyOS 鸿蒙Next

如何将PixelMap保存为沙箱 HarmonyOS 鸿蒙Next 需求:
将本地图片编辑后上传到服务端

3 回复

可以使用imagePackerApi.packing的方法将PixelMap转成arraybuffer,可参考接口链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V14/js-apis-image-V14#packing13

之后使用文件上传用request接口,具体参考以下链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V14/app-file-upload-download-V14#上传应用文件

更多关于如何将PixelMap保存为沙箱 HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,将PixelMap保存为沙箱文件可以通过使用ImagePackerFile类来实现。首先,创建一个ImagePacker实例,然后使用packing方法将PixelMap转换为字节数组。接着,使用File类在沙箱目录中创建一个文件,并将字节数组写入该文件。以下是示例代码:

import image from '@ohos.multimedia.image';
import fileio from '@ohos.fileio';

async function savePixelMapToSandbox(pixelMap: image.PixelMap, fileName: string) {
    const imagePacker = new image.ImagePacker();
    const options = { format: 'image/jpeg', quality: 100 };
    const packOutput = await imagePacker.packing(pixelMap, options);

    const filePath = `internal://app/${fileName}`;
    const file = await fileio.open(filePath, fileio.OpenMode.CREATE | fileio.OpenMode.READ_WRITE);
    await fileio.write(file.fd, packOutput.data);
    await fileio.close(file.fd);
}

在此代码中,pixelMap是要保存的PixelMap对象,fileName是保存的文件名。filePath指定了文件在沙箱中的路径。fileio.open用于创建或打开文件,fileio.write将字节数组写入文件,fileio.close关闭文件。

回到顶部