#鸿蒙通关秘籍#如何下载网络图片并保存到手机?

HarmonyOS
6天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
CV梦绘江

下载网络图片并保存到手机相册或用户选择的路径,主要包含以下几个步骤:

  1. 请求图片数据:使用http.createHttp()中的request方法,通过URL请求获取在线图片数据。

    http.createHttp()
      .request('https://example.com/image.png', (error: BusinessError, data: http.HttpResponse) => {
        if (error) {
          promptAction.showToast({
            message: "图片请求失败",
            duration: 2000
          });
          return;
        }
        transcodePixelMap(data);
        if (data.result instanceof ArrayBuffer) {
          this.imageBuffer = data.result as ArrayBuffer;
        }
      });
    
  2. 展示获取到的图像数据:使用transcodePixelMap函数将获取到的图片数据转换为PixelMap展示在页面中。

    transcodePixelMap(data: http.HttpResponse) {
      let code: http.ResponseCode | number = data.responseCode;
      if (code === ResponseCode.ResponseCode.OK) {
        let imageData: ArrayBuffer = data.result as ArrayBuffer;
        let imageSource: image.ImageSource = image.createImageSource(imageData);
        let options: Record<string, any> = {
          'alphaType': 0,
          'editable': false,
          'pixelFormat': 3,
          'scaleMode': 1,
          'size': { height: 100, width: 100 }
        };
    
        imageSource.createPixelMap(options).then((pixelMap: PixelMap) => {
          this.image = pixelMap;
          this.isShow = true;
        });
      }
    }
    
  3. 保存到本地或指定路径:通过getPhotoAccessHelperfs.openfs.write等接口,将数据存到本地图库或用户指定文件夹中。

    async saveImage(buffer: ArrayBuffer | string): Promise<void> {
        let context = getContext(this) as common.UIAbilityContext;
        let helper = photoAccessHelper.getPhotoAccessHelper(context);
        let uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg');
        let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
        await fs.write(file.fd, buffer);
        await fs.close(file.fd);
    }
    

在此函数中,文件被成功保存到所需位置,整个步骤就这样完成了。

分享
微博
QQ
微信
回复
6天前
相关问题
获取网络图片保存到相册
1419浏览 • 1回复 待解决
HarmonyOS如何图片保存到手机相册
469浏览 • 1回复 待解决
如何保存网络图片到相册
701浏览 • 1回复 待解决
怎么下载网络上PDF保存到本地?
3741浏览 • 1回复 待解决
HarmonyOS 保存网络图片,图库更新
267浏览 • 1回复 待解决
HarmonyOS 保存网络图片至图库问题
217浏览 • 1回复 待解决
怎么实现保存网络图片到相册功能?
290浏览 • 1回复 待解决
如何图片和文案结合,保存到相册
204浏览 • 0回复 待解决
应用内组件截图保存到用户文件
1068浏览 • 1回复 待解决