HarmonyOS 鸿蒙Next 通过Canvas画布toDataURL()生成的图片 如何保存到本地?
HarmonyOS 鸿蒙Next 通过Canvas画布toDataURL()生成的图片 如何保存到本地? 想请教一下大家,通过Canvas画布toDataURL()方法生成的图片URL,可以放在Image() 组件中显示出来,但是我该怎么做才能把这个图片保存到本地呢?
2 回复
export async function save(canvasContext: CanvasRenderingContext2D) {
// Get PixelMap
const pixelMap = canvasContext.getPixelMap(0, 0, canvasContext.width, canvasContext.height)
// 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 通过Canvas画布toDataURL()生成的图片 如何保存到本地?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html