中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
如何保存一张PNG图片到相册中
微信扫码分享
import photoAccessHelper from ‘@ohos.file.photoAccessHelper’ import fs from ‘@ohos.file.fs’ @Entry @Component struct Index { @State message: string = ‘Hello World’; build() { Row() { Column() { Image(r('app.media.icon')) .height(300) .width(300) SaveButton({ text:SaveDescription.SAVE_IMAGE, buttonType:ButtonType.Capsule}).onClick(async (event: ClickEvent, result: SaveButtonOnClickResult) => { if (result == SaveButtonOnClickResult.SUCCESS) { try { const context = getContext(this); let helper = photoAccessHelper.getPhotoAccessHelper(context); // onClick触发后5秒内通过createAsset接口创建图片文件,5秒后createAsset权限收回。 let uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'png'); // 使用uri打开文件,可以持续写入内容,写入过程不受时间限制 let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); try { context.resourceManager.getMediaContent(r(‘app.media.icon’).id, 0) .then(async value => { let media = value.buffer; // 写到媒体库文件中 await fs.write(file.fd, media); await fs.close(file.fd); AlertDialog.show({ message: ‘已保存至相册!’ }); }); } catch (err) { console.error("error is " + JSON.stringify(err)) } } catch (error) { console.error("error is " + JSON.stringify(error)); } } else { AlertDialog.show({ message: “设置权限失败” }) } }) } .width(‘100%’) } .height(‘100%’) } }