<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
canvas{
/*border: 1px solid #ddd;*/
}
</style>
</head>
<body>
<canvas></canvas>
<script>
//获取canvas对象
var canvas = document.querySelector('canvas');
//设置画布的宽高
canvas.width = 600;
canvas.height = 500;
//2 获取画笔对象
var ctx = canvas.getContext('2d');
// 3 绘制图片
var img = new Image;
img.src = './img/img23.jpg';
img.onload = function(){
ctx.drawImage(img,0,0,600,600 * img.height / img.width);
// 随机颜色显示
var imgData = ctx.getImageData(0,0,canvas.width,canvas.height);
var size = 6;
for(var i =0; i< canvas.width;i+=size){
for(var j=0;j<canvas.height;j+=size){
// 获取坐标点的颜色
var color = getPixel(imgData,i,j);
for(var a=i; a< i + size;a++){
for(var b=j;b<j+size;b++){
setPixel(imgData,a,b,color);
}
}
}
}
// 设置像素 点信息
ctx.putImageData(imgData,0,0);
}
function getPixel(imgData, x, y){
var index = y * 4 * imgData.width + x * 4;
var d = [];
d[0] = imgData.data[index];
d[1] = imgData.data[index+1];
d[2] = imgData.data[index+2];
d[3] = imgData.data[index+3];
return d;
}
// 修改颜色
function setPixel(imgData,x,y,colors){
var index = y * 4 * imgData.width + x * 4;
imgData.data[index] = colors[0];
imgData.data[index+1] = colors[1];
imgData.data[index+2] = colors[2];
imgData.data[index+3] = colors[3];
}
</script>
</body>
</html>
马赛克效果
原创wg_iGBFcBFB 博主文章分类:canvas ©著作权
©著作权归作者所有:来自51CTO博客作者wg_iGBFcBFB的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
有趣的CSS - 闪烁的鸿星尔克文字招牌效果
利用 `animation` 动画实现一个闪烁的霓虹灯文字效果。
css 动效 ux 霓虹灯效果 动画 -
马赛克,克星!
一作师从汤晓鸥
公众号 图像处理 github -
干掉马赛克!
内附开源项目
干掉马赛克