HarmonyOS 使用安全控件保存图片到本地失败
使用安全空间保存PixelMap格式的图片到本地时,api提示成功但相册里没有,此时给app进程终止(目前看必须这么做,否则相册没有图片),相册里就出现那张图片了。
操作步骤:
1、使用安全空间保存PixelMap格式的图片到本地。
import { util } from '@kit.ArkTS';
import { image } from '@kit.ImageKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { fileIo } from '@kit.CoreFileKit';
SaveButton(this.saveButtonOptions).onClick(async (event, result: SaveButtonOnClickResult) => {
if (result == SaveButtonOnClickResult.SUCCESS) {
let bs64Helper = new util.Base64Helper();
let base64: string = ''
let buffer: ArrayBuffer = bs64Helper.decodeSync(base64, util.Type.MIME).buffer as ArrayBuffer;
let imageSource = image.createImageSource(buffer);
let opts: image.DecodingOptions = { editable: true };
imageSource.createPixelMap(opts).then(async (pixelMap: image.PixelMap) => {
// 获取相册的保存路径
let contextThis: Context = getContext(this);
let paHelper = photoAccessHelper.getPhotoAccessHelper(contextThis);
let uri = await paHelper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpeg');
let file = await fileIo.open(uri, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE);
let imagePackerApi = image.createImagePacker();
let packOpts: image.PackingOption = { format: 'image/jpeg', quality: 98 };
imagePackerApi.packToFile(pixelMap, file.fd, packOpts, (error: BusinessError) => {
if (error) {
console.log(JSON.stringify(error))
} else {
console.log('成功')
}
})
}).catch((error: BusinessError) => {
console.log(JSON.stringify(error))
})
}
})
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
2、弹出的安全控件保存图片后packToFile没有错误信息但相册也没有图片,接下来只要app杀进程图片就立刻出现在相册里。
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS 安全控件的保存控件SaveButton保存图片到相册失败
585浏览 • 1回复 待解决
HarmonyOS 使用安全控件保存图片,授权一直失败
502浏览 • 1回复 待解决
HarmonyOS 保存图片到本地相册
787浏览 • 1回复 待解决
如何使用安全控件SaveButton进行图片的快速保存
3177浏览 • 1回复 待解决
HarmonyOS 如何通过安全控件保存视频到相册
433浏览 • 1回复 待解决
HarmonyOS 手写签名,并保存图片到本地
546浏览 • 1回复 待解决
如何保存http网络图片到本地
786浏览 • 1回复 待解决
如何保存本地图片到相册中
1989浏览 • 1回复 待解决
HarmonyOS 图片保存失败
759浏览 • 1回复 待解决
HarmonyOS 使用安全控件保存视频偶现弹出无相册权限
329浏览 • 1回复 待解决
HarmonyOS 安全控件使用
513浏览 • 1回复 待解决
HarmonyOS H5页面保存图片到本地相册
716浏览 • 1回复 待解决
HarmonyOS 保存图片到本地一直报without medialibrary permission
1432浏览 • 1回复 待解决
HarmonyOS 安全控件使用问题
926浏览 • 1回复 待解决
HarmonyOS 实现保存图片到相册
904浏览 • 1回复 待解决
HarmonyOS 截图保存图片到相册
652浏览 • 1回复 待解决
HarmonyOS 保存图片到相册问题
1067浏览 • 1回复 待解决
HarmonyOS 保存图片到系统相册
826浏览 • 1回复 待解决
HarmonyOS SaveButton保存图片授权失败
754浏览 • 1回复 待解决
HarmonyOS 无法使用受限权限,怎么保存图片到图库中去
800浏览 • 1回复 待解决
HarmonyOS 保存图片到相册权限问题
937浏览 • 1回复 待解决
HarmonyOS base64格式的图片数据如何保存文件到本地相册?
1982浏览 • 1回复 待解决
HarmonyOS 如何使用canvas绘制(颜色或者图片)为背景图片,网络图片为src并使用保存的控件保存到相册
755浏览 • 1回复 待解决
HarmonyOS Image展示本地图片失败
926浏览 • 1回复 待解决
HarmonyOS保存图片到系统相册问题咨询
1334浏览 • 1回复 待解决
将图片写入文件后,还需要调用fs.close触发媒体库扫描,这样才能及时在相册里看到刚保存的图片。