收藏
回答

使用canvas.createImage在ios真机调试时加载不出图片?

开发者工具没问题,ios真机调试一直报undefined!

ios版本:17.4.1

微信版本:8.0.47

基础库版本:3.4.3

代码片段:https://developers.weixin.qq.com/s/C58NUbmx7yR3

const query = wx.createSelectorQuery()
    query.select('#myCanvas')
      .fields({ node: true, size: true,style :true})
      .exec((res)=>{
        const canvas = res[0].node
        const ctx = canvas.getContext('2d')
        // 1.设置画布大小
        canvas.width = res[0].width
        canvas.height = res[0].height
        // 2.复制图片到画布
        const imgObj = canvas.createImage()
        imgObj.src = 'https://img0.baidu.com/it/u=1956177774,56494919&fm=253&fmt=auto&app=138&f=JPEG?w=190&h=190'
        imgObj.onerror = ((res)=>{
          console.log(res);
        })
        imgObj.onload = (res)=>{
          console.log(res);  // 这里报undefined
          const i_wid = canvas.width
          const i_hei =  i_wid * res.path[0].height / res.path[0].width
          // drawImage(imageResource, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight) 
          ctx.drawImage(imgObj , 0 ,0 ,res.path[0].width , res.path[0].height , 0, canvas.height - i_hei ,canvas.width,i_hei)
        }
回答关注问题邀请回答
收藏

2 个回答

  • Wei
    Wei
    05-14
    createImage执行了下载,需要在后台配置下载的域名才行
    
    05-14
    有用
    回复 5
    • 非洲小白脸🎬
      非洲小白脸🎬
      05-14
      我是真机调试,点了不校验合法域名,况且加载base64转的图片也不行呀,还是一样的报错
      05-14
      回复
    • 非洲小白脸🎬
      非洲小白脸🎬
      05-14
      大哥
      05-14
      回复
    • Wei
      Wei
      05-14回复非洲小白脸🎬
      你使用的是skyline渲染,就这个图片地址在该模式下存在问题(怀疑是图片地址带逗号),换个图片地址就正常了,估计是skyline还不支持这样的地址
      05-14
      回复
    • Wei
      Wei
      05-14
      另外skyline渲染不支持开发工具调试
      05-14
      回复
    • 非洲小白脸🎬
      非洲小白脸🎬
      05-14
      大哥我没用skyline渲染,图片是后台本地代码返回的,还没部署上去,我就随便在网上找了个图片来说明问题,真实的地址不是这样的,但是也显示不出来
      05-14
      回复
  • 非洲小白脸🎬
    非洲小白脸🎬
    05-14

    报错信息:

    05-14
    有用
    回复 4
    • 非洲小白脸🎬
      非洲小白脸🎬
      05-14
      onload的回调方法里面不接收参数ios就可以正常加载了,那么怎么获得图片的长宽信息呢?难道再调用一下getImageInfo???真的很恶心
      05-14
      1
      回复
    • 夏落
      夏落
      05-14回复非洲小白脸🎬
      看官方文档也没说能在 onload 里获取到什么信息
      这个官方的一个代码片段(https://developers.weixin.qq.com/s/2FHoZGmA7XzI),onload 里也一样获取不到有用信息
      05-14
      回复
    • 非洲小白脸🎬
      非洲小白脸🎬
      05-14回复夏落
      开发者工具是能获取到长宽信息的,到ios里面调试就不行了
      05-14
      回复
    • 夏落
      夏落
      05-14回复非洲小白脸🎬
      iOS 确实没有的,有安卓手机可以试试
      模拟器和真机运行环境不一样,还是要以真机为主
      05-14
      回复
登录 后发表内容