HarmonyOS 图片资源选取

直接取 PhotoSelectResult 这个还不行,要存入 沙盒路径内。我这边如何把picker.PhotoViewPicker()的返回转成沙盒路径

相册图片返回的地址,三方sdk不支持,需要转成沙盒路径。

HarmonyOS
2024-08-30 12:07:01
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

获取相册图片后需要将其地址转换成应用沙盒路径。这可以通过以下步骤实现:

1:获取沙箱路径。参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-context-stage-V5#获取应用文件路径

具体实现代码如下。应用沙箱的介绍及如何向应用沙箱推送文件,请参考文件管理。

import common from '@ohos.app.ability.common'; 
import hilog from '@ohos.hilog'; 
import promptAction from '@ohos.promptAction'; 
 
const TAG: string = '[Page_Context]'; 
const DOMAIN_NUMBER: number = 0xFF00; 
@Entry 
@Component 
struct Page_Context { 
 
 private context = getContext(this) as common.UIAbilityContext; 
 
 build() { 
  ... 
  Button() 
   .onClick(() => { 
    let applicationContext = this.context.getApplicationContext(); 
    let cacheDir = applicationContext.cacheDir; 
    let tempDir = applicationContext.tempDir; 
    let filesDir = applicationContext.filesDir; 
    let databaseDir = applicationContext.databaseDir; 
    let bundleCodeDir = applicationContext.bundleCodeDir; 
    let distributedFilesDir = applicationContext.distributedFilesDir; 
    let preferencesDir = applicationContext.preferencesDir; 
    // 获取应用文件路径 
    let filePath = tempDir + 'test.txt'; 
    hilog.info(DOMAIN_NUMBER, TAG, `filePath: ${filePath}`); 
    if (filePath !== null) { 
     promptAction.showToast({ 
      message: filePath 
     }); 
    } 
   }) 
 } 
}

2:通过沙箱路径获取图片的文件描述符。具体请参考file.fs API参考文档,参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5

先导入@ohos.file.fs模块,然后调用fs.openSync()获取文件描述符。

分享
微博
QQ
微信
回复
2024-08-30 20:10:55
相关问题
HarmonyOS选取并拷贝文件失败
414浏览 • 1回复 待解决
找不到图片和布局资源
12091浏览 • 8回复 待解决
如何使用Image加载沙箱路径图片资源
1203浏览 • 2回复 待解决
Iamge组件如何加载Graphic的资源图片
6987浏览 • 1回复 待解决
请求服务器图片资源刷新卡片
870浏览 • 1回复 待解决
鸿蒙图片资源在Java代码中如何使用
8097浏览 • 1回复 待解决
canvas怎么绘制资源目录下的图片
668浏览 • 1回复 待解决