用像素块遮挡图片的某部分

用像素块遮挡图片的某部分,它可将图像变得不可识别。效果图:
[img]http://dl2.iteye.com/upload/attachment/0091/7202/6dfc5cfb-965d-3a2f-ae76-c92b524788ac.gif[/img]

HTML5代码:
<!DOCTYPE html >
<html>
<head>
<meta charset="gb2312" />

<title>canvas 图片像素化</title>
<script type="text/javascript">
function $$(id){
return document.getElementById(id);
}

function pageload(){
var cnv=$$("cnvMain");
var context=cnv.getContext("2d");

var image = new Image();
image.src = "example.jpg";
image.onload=function(){
context.drawImage(image, 0, 0, 500, 736);
var imageData = context.getImageData(0, 0, cnv.width, cnv.height);
var pixels = imageData.data;
var numPixels = pixels.length;

var numTileRows = 20;
var numTileCols = 20;

var tileWidth = imageData.width/numTileCols;
var tileHeight = imageData.height/numTileRows;

for (var r = 0; r < numTileRows; r++) {
for (var c = 0; c < numTileCols; c++) {
var x = (c*tileWidth)+(tileWidth/2);//圆心坐标
var y = (r*tileHeight)+(tileHeight/2);

// Use Math.floor to convert the pixel positions to integers
var pos = (Math.floor(y)*(imageData.width*4))+(Math.floor(x)*4);

var red = pixels[pos];
var green = pixels[pos+1];
var blue = pixels[pos+2];
var a=0.9;
context.fillStyle = "rgba("+red+", "+green+", "+blue+", "+a+")";
//正方形像素化
if(3<r&&r<7&&c>8&&c<15){
context.fillRect(x-(tileWidth/2), y-(tileHeight/2), tileWidth, tileHeight);
}
};
};
}
}
</script>
</head>
<body onload="pageload();">
<canvas id="cnvMain" width="500" height="736"> </canvas>
</body>
</html>


效果及源码下载:
[url]http://www.108js.com/article/article7/70071.html[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值