admin管理员组文章数量:1037775
HarmonyOS Next 保存图片数据到系统文件
当前鸿蒙开发中如果要保存图片数据到系统相册,需要basic权限,而不是我们正常使用Normal权限,一些应用为了避免申请权限的麻烦,或者根本没有理由申请basic权限,可以将图片数据保存到系统文件中
代码语言:javascript代码运行次数:0运行复制//图片资源压缩处理
let bitmap: ArrayBuffer;//图片数据
let packer: image.ImagePacker = image.createImagePacker();
let packerData = await packer.packing(bitmap, {
fornat: 'image/jpeg',
quality: 90
});
// 获取文件名称
let date = new Date();
let year: string = date.getFullYear().toString();
let mouth: string = this.addSpaceZero(date.getMonth() +1);
let day: string = this.addSpaceZero(date.getDate());
let hours: string = this.addSpaceZero(date.getHours());
let ninutes: string = this.addSpaceZero(date.getMinutes());
let seconds: string = this.addSpaceZero(date.getSeconds());
let inageTitle: string = 'IMG_' + year + mouth + day + '_' + hours + minutes + seconds + '.jpg';
hilog.info(0x0000,`saveQRNew imageTitle: ${imageTitle)`, '%{public}s');
//图片保存时option设置
let photoSaveOptions = new picker.PhoteSeveOptions();
photoSaveOptions.newFileNames =[imageTitle];
let abilityContext = getContext() as common.UIAbilityContext;
let photoPicker = new picker.PhotoVienPicker(abilityContext);
photoPicker.save(photoSaveOptions).then((photoSaveResult: Array<string>) =>{
hilog.info(0x0000,"photoPicker save success, uri: ${JSON.stringify(photoSaveResult)}', '%{public}s');
let uri: string = photoSaveResult[0] || '';
let file = fs.openSync(ur1, fs.OpenMode.WRITE_ONLY | fs.OpenMode.CREATE);
fs.writesync(file.fd, packerData);
fs.closeSync(file.fd);
}).catch((err: BusinessError)>{
hilog.info(0x0000,"photoPicker save fail, err: S(JSON.stringify(err)}', '%{public}s');
});
addSpaceZero(timeNum: number): string {
return timeNum < 10 ? '0' + timeNum.toString() : timeNum.toString();
}
----------------- end ---------------
后面会继续补充不足之处。
HarmonyOS Next 保存图片数据到系统文件
当前鸿蒙开发中如果要保存图片数据到系统相册,需要basic权限,而不是我们正常使用Normal权限,一些应用为了避免申请权限的麻烦,或者根本没有理由申请basic权限,可以将图片数据保存到系统文件中
代码语言:javascript代码运行次数:0运行复制//图片资源压缩处理
let bitmap: ArrayBuffer;//图片数据
let packer: image.ImagePacker = image.createImagePacker();
let packerData = await packer.packing(bitmap, {
fornat: 'image/jpeg',
quality: 90
});
// 获取文件名称
let date = new Date();
let year: string = date.getFullYear().toString();
let mouth: string = this.addSpaceZero(date.getMonth() +1);
let day: string = this.addSpaceZero(date.getDate());
let hours: string = this.addSpaceZero(date.getHours());
let ninutes: string = this.addSpaceZero(date.getMinutes());
let seconds: string = this.addSpaceZero(date.getSeconds());
let inageTitle: string = 'IMG_' + year + mouth + day + '_' + hours + minutes + seconds + '.jpg';
hilog.info(0x0000,`saveQRNew imageTitle: ${imageTitle)`, '%{public}s');
//图片保存时option设置
let photoSaveOptions = new picker.PhoteSeveOptions();
photoSaveOptions.newFileNames =[imageTitle];
let abilityContext = getContext() as common.UIAbilityContext;
let photoPicker = new picker.PhotoVienPicker(abilityContext);
photoPicker.save(photoSaveOptions).then((photoSaveResult: Array<string>) =>{
hilog.info(0x0000,"photoPicker save success, uri: ${JSON.stringify(photoSaveResult)}', '%{public}s');
let uri: string = photoSaveResult[0] || '';
let file = fs.openSync(ur1, fs.OpenMode.WRITE_ONLY | fs.OpenMode.CREATE);
fs.writesync(file.fd, packerData);
fs.closeSync(file.fd);
}).catch((err: BusinessError)>{
hilog.info(0x0000,"photoPicker save fail, err: S(JSON.stringify(err)}', '%{public}s');
});
addSpaceZero(timeNum: number): string {
return timeNum < 10 ? '0' + timeNum.toString() : timeNum.toString();
}
----------------- end ---------------
后面会继续补充不足之处。
本文标签: HarmonyOS Next 保存图片数据到系统文件
版权声明:本文标题:HarmonyOS Next 保存图片数据到系统文件 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1748269854a2277732.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论