为了账号安全,请及时绑定邮箱和手机立即绑定

这段代码中的两个date 有什么区别

这段代码中的两个date 有什么区别

甫里 2016-04-13 14:36:18
                data = imageData.data;                for (i=0, len=data.length; i < len; i+=4){                                    red = data[i];                    green = data[i+1];                    blue = data[i+2];                    alpha = data[i+3];                                        //get the average of rgb                    average = Math.floor((red + green + blue) / 3);                                        //set the colors, leave alpha alone                    data[i] = average;                    data[i+1] = average;                    data[i+2] = average;                                    }                                //assign back to image data and display                imageData.data = data; // 这里的date 从哪里取得
查看完整描述

1 回答

?
苦逼的代码狗

TA贡献3条经验 获得超0个赞

imageData.data = data; // 这里的date 从哪里取得

后一个data是 第一句data = imageData.data;里的第一个data。为了让你看清。我把代码修改一下

imageData = imageData.data;

                for (i=0, len=imageData.length; i < len; i+=4){

                

                    red = imageData[i];

                    green = imageData[i+1];

                    blue = imageData[i+2];

                    alpha = imageData[i+3];

                    

                    //get the average of rgb

                    average = Math.floor((red + green + blue) / 3);

                    

                    //set the colors, leave alpha alone

                    imageData[i] = average;

                    imageData[i+1] = average;

                    imageData[i+2] = average;

                    

                }

                

                //assign back to image data and display

                imageData.data = imageData; // 这里的date 从哪里取得

你对比一下就知道了

这个程序实现的是将所画图像的颜色置为白色( average = Math.floor((red + green + blue) / 3))

查看完整回答
反对 回复 2016-04-13
  • 甫里
    甫里
    for循环里面的代码让imageData.data这个数组发了改变,并且返回了? imageData = imageData.date 里面red green blue变成了average 所以最后取回的imageData发送了变化?
  • 苦逼的代码狗
    苦逼的代码狗
    额,我说的有一处错误,返回的不是白色,而是该点的属性值平均之后的颜色。 确实改变了。因为是for循环不是函数,所以并不是返回值,而是直接修改值。不过结果正如你所说最后imageData发生了变化
  • 1 回答
  • 0 关注
  • 1309 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信