已知相册图片和视频的uri,如何用流读取这些信息,然后将其传送给后端?

现在我已经获得到了相册图片/视频的URI,那么如何用流读取到他们,然后将流传给后端?
 
 

鸿蒙
相册图片
URI
2022-02-17 14:02:47
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Stephanq
1

可以参考如下代码获取图片uri,在根据uri获取图片转换成数据流:

DataAbilityHelper helper = DataAbilityHelper.creator(this);

       ResultSet resultSet;

       ImageSource imageSource = null;

       try {

           resultSet = helper.query(AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI, new String[]

               {AVStorage.Images.Media.ID, AVStorage.Images.Media.DISPLAY_NAME}, null);

           while (resultSet != null && resultSet.goToNextRow()) {

               int id = resultSet.getInt(resultSet.getColumnIndexForName(AVStorage.Images.Media.ID));

               String imageName = resultSet.getString(resultSet.getColumnIndexForName(

                       AVStorage.Images.Media.DISPLAY_NAME));

               Image image = new Image(this);

               image.setMarginsLeftAndRight(PADDING, PADDING);

               image.setMarginsTopAndBottom(PADDING, PADDING);

               map.put(id, imageName);

               image.setId(id);

               image.setTag(imageName);

               // 获取id字段的值

               Uri uri = Uri.appendEncodedPathToUri(AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI,

                       String.valueOf(id));

               FileDescriptor fd = helper.openFile(uri, "r");

                // 1、根据fd获取图片转换成流-用户可自己实现

                // 2、TODO...

                // 将图片展示到页面

               ImageSource.DecodingOptions decodingOpts = new ImageSource.DecodingOptions();

               decodingOpts.desiredSize = new Size(imageSize, imageSize);

               imageSource = ImageSource.create(fd, null);

               PixelMap pixelMap = imageSource.createPixelmap(decodingOpts);

               image.setPixelMap(pixelMap);

               tableLayout.addComponent(image);

           }

       } catch (FileNotFoundException | DataAbilityRemoteException e) {

           LogUtils.error(TAG, "FileNotFoundException | DataAbilityRemoteException e" + e);

       } finally {

           if (imageSource != null) {

               imageSource.release();

           }

       }

分享
微博
QQ
微信
回复
2022-02-17 15:19:39
相关问题
如何读取相册图片
251浏览 • 1回复 待解决
如何根据uri读取文件?
1880浏览 • 1回复 待解决
关于视频格式如何保存咨询
647浏览 • 1回复 待解决
如何用websocket发送音频?
2505浏览 • 1回复 待解决
如何用PixelMap处理图片
626浏览 • 1回复 待解决
TV 中如何用Java播放本地视频
8190浏览 • 2回复 待解决
关于如何使用鸿蒙接收视频
2285浏览 • 0回复 待解决
读取文件方式,有人知道吗?
677浏览 • 1回复 待解决
请问视频支持哪些格式
178浏览 • 1回复 待解决
Harmony 如何读取本地视频文件路径?
13353浏览 • 2回复 待解决
如何视频保存到相册以及主机端
4268浏览 • 1回复 待解决
如何保存本地图片相册
253浏览 • 1回复 待解决
如何保存网络图片相册
241浏览 • 1回复 待解决
如何相册图片进行编辑裁剪
853浏览 • 1回复 待解决
拉起相册选择图片页面失败
613浏览 • 1回复 待解决
求大佬告知如何保存图片相册
396浏览 • 1回复 待解决
OpenHarmony 设备 如何相册传个图片
1273浏览 • 2回复 待解决