收藏
回答

小游戏 图片保存到本地用户文件目录 怎么读取?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小游戏 Bug wx.env.USER_DATA_PATH 客户端 6.5.3 2.6.0

- 当前 Bug 的表现(可附上截图)


- 预期表现


- 复现路径


- 提供一个最简复现 Demo


保存图片到本地用户文件目录 wx.env.USER_DATA_PATH 成功没有问题

不能使用 img.src =  wx.env.USER_DATA_PATH 对应地址 直接赋值显示图片

不能使用 wx.previewImage 直接预览图片

使用FileSystemManager 读取图片 转码后 经putimagedata 还是无法正确查看到图片

请问有没有什么办法可以将图片存储到本地,再在界面正确显示的



回答关注问题邀请回答
收藏

3 个回答

  • 小游戏运营专员 - 宏
    小游戏运营专员 - 宏
    2019-07-16

    您好,目前小游戏暂无读取本地图片功能。

    2019-07-16
    有用
    回复 1
    • 国藩
      国藩
      2022-06-23
      2022年了,现今小游戏支持读取本地图片功能吗
      2022-06-23
      1
      回复
  • sweetie
    sweetie
    01-26

        wx.downloadFile({//从网络下载文件到本地

          url : '真实地址',

          filePath:`${wx.env.USER_DATA_PATH}/a.png`,//指定文件下载后存储的路径 (本地路径)可选

          success (res) {//res.filePath

            var img = new Image()

    img.src = res.filePath

          }

        })

    这样赋值就可以用了,开发者工具上文件路径是"http://usr/a.png",真机上文件路径是"wxfile://usr/a.png"

    01-26
    有用 1
    回复
  • 123
    123
    2020-02-16

    取到图片文件的arraybuffer后应该先decode图片,然后转换成rgba数组,根据rgba数组生成texture2d

    cocos creator 代码 使用了github UPNG

        let img = UPNG.decode(res.data);        // put ArrayBuffer of the PNG file into UPNG.decod

      let rgba = UPNG.toRGBA8(img)[0];

          let arr = new Uint8Array(rgba)

            let texture2d = new cc.Texture2D();

          texture2d.initWithData(arr , cc.Texture2D.PixelFormat.RGBA8888, img.width, img.height);

          sprite.spriteFrame = new cc.SpriteFrame(texture2d );

                       

    2020-02-16
    有用
    回复
登录 后发表内容