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;
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
第二步,写入图片:
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);
})
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
最终看divice file browser中存在该图片文件,但是破损无法使用
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS 沙盒中的图片和视频移动/拷贝到系统相册中
1815浏览 • 1回复 待解决
HarmonyOS 相册获取到的图片uri,是否可以使用fs
849浏览 • 1回复 待解决
HarmonyOS 图片压缩并存储到沙盒样例代码
798浏览 • 1回复 待解决
HarmonyOS 在ArkTS里面类中打开相册、下载图片不使用picker组件
614浏览 • 1回复 待解决
HarmonyOS 相册图片存储
481浏览 • 1回复 待解决
HarmonyOS 怎么从picker获取到图片,并专成uint8Array或者arrayBuffer
600浏览 • 1回复 待解决
HarmonyOS 上传图片后从相册获取图片或者拍照获取图片增加裁剪功能
810浏览 • 1回复 待解决
如何存储图片的 Buffer 到沙盒为一个 jpeg/png 文件,并使用 Image 组件进行访问。
2811浏览 • 1回复 待解决
HarmonyOS photoAccessHelper如何获取到所有相册的图片?
865浏览 • 1回复 待解决
需要调起系统相册,选择一张图片,并能获取到选择到的图片,应该如何实现
2308浏览 • 1回复 待解决
HarmonyOS 相机拍照后如何获获取图片信息(eg:宽高),上传也需要放到copy到沙盒中操作吗
489浏览 • 1回复 待解决
HarmonyOS 使用picker保存网络图片
664浏览 • 1回复 待解决
HarmonyOS rawfile 中的大文件如何copy到沙盒中?
1349浏览 • 1回复 待解决
使用imageSource如何存储图片
928浏览 • 1回复 待解决
存储权限限制,无法使用抓包,无法导出图片,录屏
1579浏览 • 1回复 待解决
HarmonyOS 保存图片到本地相册
995浏览 • 1回复 待解决
HarmonyOS 保存图片到系统相册
978浏览 • 1回复 待解决
HarmonyOS 保存图片到相册问题
1256浏览 • 1回复 待解决
HarmonyOS 截图保存图片到相册
824浏览 • 1回复 待解决
HarmonyOS 实现保存图片到相册
1121浏览 • 1回复 待解决
HarmonyOS 获取到相册里图片的uri后如何读取
908浏览 • 1回复 待解决
HarmonyOS 无法使用受限权限,怎么保存图片到图库中去
955浏览 • 1回复 待解决
HarmonyOS 在使用Image图片组件时,放入pixelMap无法显示图片
1335浏览 • 1回复 待解决
HarmonyOS 保存图片到相册权限问题
1117浏览 • 1回复 待解决
HarmonyOS picker选择图片后如何获取图片宽高
766浏览 • 1回复 待解决
可以参考如下文档实现保存文件:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/save-user-file-V5
也可以参考如下demo: