HarmonyOS 鸿蒙Next 获取到相册里图片的uri后如何读取
HarmonyOS 鸿蒙Next 获取到相册里图片的uri后如何读取
使用 picker.PhotoViewPicker() 发起图片选择,在获取到图片Uri后,如何去读取这个图片?
需要实现一个选择用户图片并且上传到服务器的功能,方法是
通过 picker.PhotoViewPicker() 获取了图片,这一步操作成功,获取的uri 为 file://media/Photo/2/xxx.jpg
使用fs的open去读取,报错 13900002 文件不存在
然后又用了 fileUri.FileUri 尝试获取路径依然不起作用一样的说文件不存在
fs.access方法也说是不存在
那到底如何正确的去读取这个文件图片?
更多关于HarmonyOS 鸿蒙Next 获取到相册里图片的uri后如何读取的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next 获取到相册里图片的uri后如何读取的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,获取到相册里图片的URI后,可以通过以下步骤读取图片数据:
-
URI解析:首先,利用系统提供的URI解析工具,从URI中提取出图片的路径或文件标识符。
-
权限检查:确保应用已获得读取相册的权限。在鸿蒙系统中,这通常需要在manifest文件中声明相关权限,并在运行时进行权限请求。
-
MediaStore访问:通过MediaStore API,利用URI查询图片的具体信息,如MIME类型、大小等。
-
文件访问:如果URI指向的是一个文件路径,可以直接使用文件I/O操作读取图片数据。如果URI指向的是内容URI,则需要使用ContentResolver来获取图片的输入流。
-
BitmapFactory解码:将输入流传递给BitmapFactory,进行图片解码,得到Bitmap对象,即可在应用中展示或处理图片。
示例代码片段(简化版,省略了权限检查和错误处理):
Uri uri = ...; // 获取到的图片URI
ContentResolver resolver = getContentResolver();
InputStream inputStream = resolver.openInputStream(uri);
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
inputStream.close();
注意:上述代码是基于Android的示例,鸿蒙系统在具体API上可能有所不同,但总体思路一致。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html