国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript實現圖像模糊化的方法實例

2019-11-19 17:56:06
字體:
來源:轉載
供稿:網友

前言

眾所周知一幅完整的圖像,是由紅色、綠色、藍色三個通道組成的。紅色、綠色、藍色三個通道的縮覽圖都是以灰度顯示的。用不同的灰度色階來表示" 紅,綠,藍"在圖像中的比重。通道中的純白,代表了該色光在此處為最高亮度,亮度級別是255。

模糊化方法:

就是將一個像素點的R(G,B)和它周圍像素點的R(G,B)取出,然后取平均值再賦給這個像素點的R(G,B);這樣就完成模糊化了;

例:

       1        2        3

       4        5        6

       7        8        9

       比如這個像素點5,把5像素點和周圍的8個像素點(1,2,3,4,6,7,8,9)的R(G,B)取出,取這9個點的平均值然后賦給5像素點

       R(5) = (R1+R2+R3+R4+R5+R6+R7+R8+R9)/9;

       G(5) = (G1+G2+G3+G4+G5+G6+G7+G8+G9)/9;

       B(5) = (B1+B2+B3+B4+B5+B6+B7+B8+B9)/9;

效果圖:

實例代碼

<!DOCTYPE html><html>	<head>		<meta charset="UTF-8">		<title>ImgBase</title>		<style type="text/css">			.scream{				width:400px;				height:300px;				position: absolute;				top:60px;				border: 1px solid;			}			#canvas{				position: absolute;				top:60px;				left:500px;				border: 1px dashed;			}		</style>	</head>	<body>		<input type="file" onchange="loadImg()"/>		<input type="button" value="模糊化" onclick="Fuzzy()"/>		<br/><br/>		<div class="scream">			<img id="scream" width="400px" height="300px" alt="Image preview...">		</div>		<canvas id="canvas" width="400px;" height="300px;">			your browser does not support canvas!		</canvas>				<script>			function Fuzzy(){				var c=document.getElementById("canvas");			 var ctx=c.getContext("2d");			 var imgData=ctx.getImageData(0,0,c.width,c.height);			 var img_w = imgData.width;			 var img_h = imgData.height;			 			 for(var w=1;w<(img_w-1);w++){			 	for(var h=1;h<(img_h-1);h++){			 		//起始點			 		var i = (w+img_w*h)*4;			 		var R = imgData.data[i-1604]+imgData.data[i-1600]+imgData.data[i-1596]+imgData.data[i-4]+imgData.data[i]			 		+imgData.data[i+4]+imgData.data[i+1596]+imgData.data[i+1600]+imgData.data[i+1604];	//R(0-255)				 	var G = imgData.data[i-1603]+imgData.data[i-1599]+imgData.data[i-1595]+imgData.data[i-3]+imgData.data[i+1]			 		+imgData.data[i+5]+imgData.data[i+1597]+imgData.data[i+1601]+imgData.data[i+1605];	//G(0-255)				 	var B = imgData.data[i-1602]+imgData.data[i-1598]+imgData.data[i-1594]+imgData.data[i-2]+imgData.data[i+2]			 		+imgData.data[i+6]+imgData.data[i+1598]+imgData.data[i+1602]+imgData.data[i+1606];;	//G(0-255)				 	var Alpha = imgData.data[i+3];	//Alpha(0-255)		 					 	imgData.data[i] = R/9;				  imgData.data[i+1] = G/9;					  imgData.data[i+2] = B/9;					  imgData.data[i+3] = Alpha;				 	}			 }			 ctx.putImageData(imgData,0,0);			}		</script>		<script>			//canvas圖像的寬高 			var c_w = 400; var c_h = 300;			//加載img圖像			function loadImg(){				var img = document.getElementById("scream");				var file = document.querySelector('input[type=file]').files[0];				if(!/image///w+/.test(file.type)){			  alert("文件必須為圖片!");			  return false;			 }				var reader = new FileReader();				reader.addEventListener("load", function () {				 img.src = reader.result;				}, false);								if(file) {					reader.readAsDataURL(file);					loadCanvas();				}			}			//加載canvas圖像			function loadCanvas(){				var c=document.getElementById("canvas");				var ctx=c.getContext("2d");								var img = document.getElementById("scream");				img.onload = function() {					ctx.drawImage(img,0,0,c_w,c_h);				} 			}		</script>	</body></html>

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 舒兰市| 类乌齐县| 东乡| 青神县| 大余县| 南江县| 邯郸市| 东至县| 宁乡县| 南雄市| 高邮市| 二手房| 柳江县| 南陵县| 子长县| 汤原县| 哈巴河县| 平顺县| 崇信县| 简阳市| 柘城县| 秦安县| 宜宾市| 莱西市| 巴彦淖尔市| 开远市| 长垣县| 临沭县| 栾川县| 永顺县| 长寿区| 佛山市| 高阳县| 宝坻区| 克拉玛依市| 东兴市| 土默特右旗| 南丹县| 彰化市| 盐源县| 鹤庆县|