html5 canvas图片马赛克
<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <script> window.onload = function (){ var oc = document.getElementById(‘c1‘); var ogc = oc.getContext(‘2d‘); var yimg = new Image(); yimg.onload = function () { draw(this); }; yimg.src = ‘img/5-5.jpg‘; function draw(obj) { oc.width = obj.width; oc.height = obj.height * 2; ogc.drawImage(obj,0,0); var oimg = ogc.getImageData(0,0,obj.width,obj.height); var w = oimg.width; var h = oimg.height; var num = 5; var newimg = ogc.createImageData(obj.width,obj.height); var stepw = w/num; var steph = h/num; for(var i = 0; i < steph; i++) { for(var j = 0; j < stepw; j++) { var color = getXY(oimg,j*num+Math.floor(Math.random()*num),i*num+Math.floor(Math.random()*num)); for(var k = 0; k < num; k++) { for(var l = 0; l < num; l++) { setXY(newimg,j*num+l,i*num+k,color); } } } } ogc.putImageData(newimg,0,obj.height); } function getXY(obj,x,y) { var w = obj.width; var h = obj.height; var d = obj.data; var color = []; color[0] = d[ 4*(y*w+x)]; color[1] = d[ 4*(y*w+x) +1]; color[2] = d[ 4*(y*w+x) +2]; color[3] = d[ 4*(y*w+x) +3]; return color; } function setXY(obj,x,y,color) { var w = obj.width; var h = obj.height; var d = obj.data; d[ 4*(y*w+x)] = color[0]; d[ 4*(y*w+x) +1] = color[1]; d[ 4*(y*w+x) +2] = color[2]; d[ 4*(y*w+x) +3] = color[3]; } } </script> <style> body{ background:pink; } #c1{ background:white; } </style> </head> <body> <canvas id="c1" width="400" height="400"></canvas> </body> </html>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。