HarmonyOS 使用picker组件从相册获取到图片之后存储到沙盒中,图片无法使用
通过@ohos.file.picker选图后,通过fs将图片写入到沙盒中,图片无法使用
代码:
第一步picker选图:
pickImageInAlbum(photoSelectOptions: picker.PhotoSelectOptions): Promise<picker.PhotoSelectResult> {
return new Promise((resolve, reject) => {
try {
let photoPicker = new picker.PhotoViewPicker();
photoPicker.select(photoSelectOptions).then((PhotoSelectResult: picker.PhotoSelectResult) => {
resolve(PhotoSelectResult)
}).catch((err: BusinessError) => {
reject(err)
});
} catch (error) {
let err: BusinessError = error as BusinessError;
reject(err)
}
})
}
let PhotoSelectOptions = new picker.PhotoSelectOptions();
PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
PhotoSelectOptions.maxSelectNumber = params.count;
第二步,写入图片:
const result: picker.PhotoSelectResult = await this.pickImageInAlbum(PhotoSelectOptions)
const isOriginalPhoto: boolean = result.isOriginalPhoto
const photo = result.photoUris[0]
const pixelMap = await this.getThumbnail(asset)
let pixelBytesNumber = pixelMap.getPixelBytesNumber();
const readBuffer = new ArrayBuffer(pixelBytesNumber);
pixelMap.readPixelsToBuffer(readBuffer).then(() => {
let pixelmapArrayBuffer: ArrayBuffer = readBuffer;
let filesDir: string = getContext(ImageCtor.mContext).filesDir
let filePath = filesDir + "/xxxxcc.jpg";
let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
fs.writeSync(file.fd, pixelmapArrayBuffer);
fs.fsyncSync(file.fd);
const res = fs.accessSync(filePath)
fs.closeSync(file);
})
最终看divice file browser中存在该图片文件,但是破损无法使用
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 沙盒中的图片和视频移动/拷贝到系统相册中
448浏览 • 1回复 待解决
HarmonyOS 图片压缩并存储到沙盒样例代码
52浏览 • 1回复 待解决
HarmonyOS 怎么从picker获取到图片,并专成uint8Array或者arrayBuffer
18浏览 • 1回复 待解决
HarmonyOS 上传图片后从相册获取图片或者拍照获取图片增加裁剪功能
52浏览 • 1回复 待解决
如何存储图片的 Buffer 到沙盒为一个 jpeg/png 文件,并使用 Image 组件进行访问。
2092浏览 • 1回复 待解决
HarmonyOS 相册图片存储
21浏览 • 1回复 待解决
HarmonyOS photoAccessHelper如何获取到所有相册的图片?
30浏览 • 1回复 待解决
需要调起系统相册,选择一张图片,并能获取到选择到的图片,应该如何实现
1837浏览 • 1回复 待解决
存储权限限制,无法使用抓包,无法导出图片,录屏
1049浏览 • 1回复 待解决
HarmonyOS 相机拍照后如何获获取图片信息(eg:宽高),上传也需要放到copy到沙盒中操作吗
50浏览 • 1回复 待解决
HarmonyOS 获取到相册里图片的uri后如何读取
48浏览 • 1回复 待解决
HarmonyOS 截图保存图片到相册
52浏览 • 1回复 待解决
HarmonyOS 实现保存图片到相册
86浏览 • 1回复 待解决
使用imageSource如何存储图片
454浏览 • 1回复 待解决
HarmonyOS rawfile 中的大文件如何copy到沙盒中?
337浏览 • 1回复 待解决
HarmonyOS 关于从相册中选择图片上传
87浏览 • 1回复 待解决
HarmonyOS 无法使用受限权限,怎么保存图片到图库中去
68浏览 • 1回复 待解决
HarmonyOS 保存图片到本地相册
57浏览 • 1回复 待解决
HarmonyOS 保存图片到相册问题
430浏览 • 1回复 待解决
HarmonyOS 保存图片到系统相册
39浏览 • 1回复 待解决
获取相册图片信息,获取手机相册中的图片相关信息
1114浏览 • 1回复 待解决
从相册获取一张图片 或者自己拍一张图片 如何获取这张图片的路径 用来识别这个图片模型
1579浏览 • 1回复 待解决
HarmonyOS 在使用Image图片组件时,放入pixelMap无法显示图片
454浏览 • 1回复 待解决
HarmonyOS picker选择图片后如何获取图片宽高
74浏览 • 1回复 待解决
如何保存网络图片到相册
788浏览 • 1回复 待解决
可以参考如下文档实现保存文件:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/save-user-file-V5
也可以参考如下demo: