我需要把一段base64的图片地址生成一张图片然后用canvas画出来。但是转图片的这步卡住了,在安卓或者网页浏览器中没有问题,但在IOS中失效。我试过由js直接new Image()创建:      var img = new Image();
      img.onload = function(){
        var w = this.width,
        h = this.height;
        alert("图片尺寸:"+w+"*"+h)
      };
      img.src = base64_img;或者先在页面上定义一个<img>标签,然后赋值:<img id="test" style="display:none;" src="">      var img = $("#test")[0];
      img.onload = function(){
        var w = this.width,
        h = this.height;
        alert("图片尺寸:"+w+"*"+h)
      };
      img.src = base64_img;但是都不能生效,在ios中onload事件根本不会触发,就算直接用$(img).trigger('load');或者$(window).trigger('load');触发也无法获取图片的尺寸,也无法直接用drawImage(image, x, y)画在画布中。请问该怎么解决呢?怎么让image的onload在ios中生效?

解决方案 »

  1.   

    这样试试      var img = new Image();
          img.onload = function(){
            var w = this.width,
            h = this.height;
            alert("图片尺寸:"+w+"*"+h)
          };
          img.src = base64_img;
          if (img.complete)
           img.onload();
      

  2.   


    img.complete 的结果是false
      

  3.   


    刚才回复img.complete结果是false的记错了。返回是true,但是 img.onload();是个错误的方法。我用
      

  4.   

    img.complete返回true  就可以直接取img.width和img.height了啊。不行的话可能是那个base64数据有问题,换个base64图片数据试下