亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這段代碼中的兩個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 關注
  • 1349 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號