账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    多个canvas绘制图片后对其进行操作,得到的结果都是最后一个canvas的内容
    32
    0

    动态生成了多个canvas,每个canvas上绘制的是不同的图片,然后对每个canvas进行相同的操作,得到的结果应该是不同的,但是我算完之后他的每个canvas的结果都是最后一个canvas得到的结果。
    怎么做可以得到每一个canvas的结果。

    var arrboxG=[];
    for (n = 0; n<imgSrc.length; n++){
            var image = new Image();
            imgs[n]=image;
            image.src = imgSrc[n];
            image.onload = function () { //为异步函数,所以将创建canvas放在onload中.
                var oDiv=document.createElement('div'),
                        oCan = document.createElement('canvas'),
                        oP=document.createElement("p");
                oDiv.appendChild(oCan);
                oDiv.appendChild(oP);
                $("#div").append(oDiv);
                var context=oCan.getContext("2d");
                //添加图片
                var imgHeight = this.height;
                var imgWidth = this.width;
                imgWidth=oCan.width;
                imgHeight=oCan.height;
                context.drawImage(this,0,0,imgWidth,imgHeight);
                var imageData =context.getImageData(0, 0,imgWidth,imgHeight);
                var length = imageData.data.length;
                //要对canvas进行的操作
                for (var i = 0; i < length; i++) {
                    if (i % 4 === 0) {
                        if (imageData.data[i + 3] == 255) { 
                            var hsl = rgbToHsl(imageData.data[i], imageData.data[i + 1], imageData.data[i + 2]);
                            if (hsl[0] >= 57 && hsl[0] <= 152 && hsl[1] >= 13 && hsl[1] <= 100 && hsl[2] >= 0 && hsl [2] <= 90) {
                                arrboxG.push(hsl);
                            }
                           
                        }
                    }
                }
            }
      })
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 北风微凉 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部