- 当前 Bug 的表现(可附上截图)
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
保存图片到本地用户文件目录 wx.env.USER_DATA_PATH 成功没有问题
不能使用 img.src = wx.env.USER_DATA_PATH 对应地址 直接赋值显示图片
不能使用 wx.previewImage 直接预览图片
使用FileSystemManager 读取图片 转码后 经putimagedata 还是无法正确查看到图片
请问有没有什么办法可以将图片存储到本地,再在界面正确显示的
您好,目前小游戏暂无读取本地图片功能。
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"
取到图片文件的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 );