小程序
小游戏
企业微信
微信支付
扫描小程序码分享
目前canvas组件中的的方法drawImage中的图片资源只支持图片url的形式,请问能否支持提供base64的形式提供图片资源来画画布?
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
这个坐等官方出了
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
https://developers.weixin.qq.com/miniprogram/dev/api/api-util.html#wxbase64toarraybufferbase64
试试这个可以不
试了一下,这种方式不知道怎么弄,没试成功
不支持,不过你可以用writeFile存成本地文件了再画上去
好的,谢谢,这种方式可以,不过这样会产生很多无用的临时文件,还是比较期望官方可以支持用base64
嗯,确实支持比较好,不过可以取同一个名字的文件,每次存之前删除
能发个实例代码看下么,我writeFile存储成功了,但是drawImage没用
这。。暂时没有实例,你可以把你代码贴出来 我帮你看
麻烦帮忙看下也没有报错
var
ctx = wx.createContext()
const fsm = wx.getFileSystemManager();
showImgData =
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACUAAAAmCAMAAAB01KKfAAAAM1BMVEUAAAArsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvT+oQevAAAAEHRSTlMA8MBAMIDgYLDQIKBQEHCQI1kaGAAAAMZJREFUOMuNk1kOhDAMQ0tKurCN73/aUVSBEAky7/vJjaskeXL6gOLg0j6hfIkCKrUKwMMqjEqjDGFRg8yieNhmBg0TnLR3acXgveaSVXBHjryniz1XlY4YabrZiB0cse6UnuaJStOcTOOSaVQaGpO85qWTjUmDyqTBEVrZb5ZHgn3waLBanp+z+qcXw4pPaUZEdBf8JxQev/ztmqVpmx5f4SrqbpeyniXDiutyXpTAKEFFuQ+buy+ZgfIsVMuz5NKiW9aWBn+EXyeh0DQcVwAAAABJRU5ErkJggg=="
const buffer = wx.base64ToArrayBuffer(showImgData);
const fileName = wx.env.USER_DATA_PATH +
'/test.png'
fsm.writeFileSync(fileName, buffer,
'binary'
)
ctx.drawImage(fileName, 10,10, 50, 50)
ctx.fillText(
'Hello'
, 200, 200)
wx.drawCanvas({
canvasId:
'canvas'
,
actions: ctx.getActions()
})
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
这个坐等官方出了
https://developers.weixin.qq.com/miniprogram/dev/api/api-util.html#wxbase64toarraybufferbase64
试试这个可以不
试了一下,这种方式不知道怎么弄,没试成功
不支持,不过你可以用writeFile存成本地文件了再画上去
好的,谢谢,这种方式可以,不过这样会产生很多无用的临时文件,还是比较期望官方可以支持用base64
嗯,确实支持比较好,不过可以取同一个名字的文件,每次存之前删除
能发个实例代码看下么,我writeFile存储成功了,但是drawImage没用
这。。暂时没有实例,你可以把你代码贴出来 我帮你看
麻烦帮忙看下也没有报错
var
ctx = wx.createContext()
const fsm = wx.getFileSystemManager();
var
showImgData =
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACUAAAAmCAMAAAB01KKfAAAAM1BMVEUAAAArsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvQrsvT+oQevAAAAEHRSTlMA8MBAMIDgYLDQIKBQEHCQI1kaGAAAAMZJREFUOMuNk1kOhDAMQ0tKurCN73/aUVSBEAky7/vJjaskeXL6gOLg0j6hfIkCKrUKwMMqjEqjDGFRg8yieNhmBg0TnLR3acXgveaSVXBHjryniz1XlY4YabrZiB0cse6UnuaJStOcTOOSaVQaGpO85qWTjUmDyqTBEVrZb5ZHgn3waLBanp+z+qcXw4pPaUZEdBf8JxQev/ztmqVpmx5f4SrqbpeyniXDiutyXpTAKEFFuQ+buy+ZgfIsVMuz5NKiW9aWBn+EXyeh0DQcVwAAAABJRU5ErkJggg=="
const buffer = wx.base64ToArrayBuffer(showImgData);
const fileName = wx.env.USER_DATA_PATH +
'/test.png'
fsm.writeFileSync(fileName, buffer,
'binary'
)
ctx.drawImage(fileName, 10,10, 50, 50)
ctx.fillText(
'Hello'
, 200, 200)
wx.drawCanvas({
canvasId:
'canvas'
,
actions: ctx.getActions()
})