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

為了賬號安全,請及時綁定郵箱和手機立即綁定

for循環

for( var i = blurR ; i < cnvA.height - blurR ; i ++ )

for( var j = blurR ; j < cnvA.width - blurR ; j ++ )

為什么i和j是這樣對應的?不是按照二維數組的理解方式?應該這樣嗎?

for(var i=blurR;i<cnvA.width-blurR;i++){

for(var j=blurR;j<cnvA.height-blurR;j++)


正在回答

3 回答

<!DOCTYPE?html>
<html>
<head?lang="en">
????<meta?charset="UTF-8">
????<title></title>
????<style>
?.btn{
????????????text-decoration:?none;
????????????border:?1px?solid?black;
????????????border-radius:?5px;
????????????background:?white;
????????????color:?black;
????????????padding:?10px;
????????????box-shadow:?5px?5px?5px?#b7b7b7;
????????}
????</style>
</head>
<body>

<div?style="margin:20px?auto;width:1168px;">
????<canvas?id="canvasa"?width="582"?height="388"?style="display:block;float:left;border:1px?solid?#aaa;"></canvas>
????<canvas?id="canvasb"?width="582"?height="388"?style="display:block;float:right;border:1px?solid?#aaa;"></canvas>
????<div?style="clear:both;"></div>

????<div?style="text-align:center;margin-top:50px;font-size:20px;">
????????<a?href="javascript:blurEffect()"?class="btn">Blur?Effect</a>
????</div>
</div>


<script>
?var?cnvA=document.getElementById("canvasa");
????var?cxtA=cnvA.getContext("2d");

????var?cnvB=document.getElementById("canvasb");
????var?cxtB=cnvB.getContext("2d");

????var?image=new?Image();
????window.onload=function(){
????????image.src="images/02.jpg";
????????image.onload=function(){
????????????cxtA.drawImage(image,0,0,cnvA.width,cnvA.height);
????????}

????};







????function?blurEffect(){
????????var?imageData=cxtA.getImageData(0,0,cnvA.width,cnvA.height);
????????var?data=imageData.data;

????????var?tempImageData=cxtA.getImageData(0,0,cnvA.width,cnvA.height);
????????var?tempData=tempImageData.data;

????????var?blurR=3;
????????var?number=(blurR+1+blurR)*(blurR+1+blurR);
????????for(var?i=blurR;i<.height-blurR;i++){
????????????for(var?j=blurR;j<cnvB.width-blurR;j++){

????????????????var?sumR=0,sumG=?0,sumB=0;
????????????????for(var?dx=-blurR;dx<=blurR;dx++){
????????????????????for(var?dy=-blurR;dy<=blurR;dy++){
????????????????????????var?x=i+dx;
????????????????????????var?y=j+dy;

????????????????????????var?index=x*cnvB.width+y;
????????????????????????sumR+=tempData[index*4+0];
????????????????????????sumG+=tempData[index*4+1];
????????????????????????sumB+=tempData[index*4+2];
????????????????????}
????????????????}
????????????????var?index=i*cnvB.width+j;
????????????????data[index*4+0]=sumR/number;
????????????????data[index*4+1]=sumG/number;
????????????????data[index*4+2]=sumB/number;
????????????}
????????}

????????cxtB.putImageData(imageData,0,0,0,0,cnvB.width,cnvB.height);
????}



</script>
</body>
</html>



https://img1.sycdn.imooc.com//5cd39b0e0001c8ff05180662.jpg

https://img1.sycdn.imooc.com//5cd39b0e00014b0207290667.jpg

https://img1.sycdn.imooc.com//5cd39b0e0001f93a14170521.jpg


0 回復 有任何疑惑可以回復我~

https://img1.sycdn.imooc.com//5ca359550001067e19200674.jpg

圖就是這樣的? 右邊沒有模糊處理

0 回復 有任何疑惑可以回復我~

function blurEffect(){

var imageData=cxtA.getImageData(0,0,cnvA.width,cnvA.height);

var data=imageData.data;

??

var tempImageData=cxtA.getImageData(0,0,cnvA.width,cnvA.height);

var tempData=tempImageData.data;

var blurR=3;

var number=(blurR+1+blurR)*(blurR+1+blurR);

for(var i=blurR;i<cnvA.width-blurR;i++){

for(var j=blurR;j<cnvA.height-blurR;j++){

/*for( var i = blurR ; i < cnvA.height - blurR ; i ++ ){

for( var j = blurR ; j < cnvA.width - blurR ; j ++ ){*/

var sumR=0,sumG=0,sumB=0;

for(var dx=-blurR;dx<=blurR;dx++){

for(var dy=-blurR;dy<=blurR;dy++){

var x=dx+i;

var y=dy+j;

var index=x*cnvA.width+y;

sumR+=tempData[index*4+0];

sumG+=tempData[index*4+1];

sumB+=tempData[index*4+2];

}

}

var index=i*cnvA.width+j;

data[index*4+0]=sumR/number;

data[index*4+1]=sumG/number;

data[index*4+2]=sumB/number;

}

}

cxtB.putImageData(imageData,0,0);

}

我代碼這樣寫后,出來的是一個正方形的模糊圖,但是我的畫布是長方形的啊,原圖的一部分沒模糊

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Canvas玩轉圖像處理
  • 參與學習       60385    人
  • 解答問題       127    個

canvas系列第三課,學會編寫圖像算法,一起玩轉圖像處理吧

進入課程
微信客服

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

幫助反饋 APP下載

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

公眾號

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