html代碼如下:
<!DOCTYPE?html>
<html>
<head>
<title>canvas</title>
<meta?charset="utf-8">
<link?rel="stylesheet"?type="text/css"?href="blur.css">
<script?src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"?type="text/javascript"></script>
</head>
<body>
<div?id="blur-div">
<img?id="blur-image"?src="image.jpg"/>
<canvas?id="canvas">
</canvas>
</div>
<script?type="text/javascript"?src="blur.js"></script>
</body>
</html>
JS代碼如下
var?canvasWidth?=?600
var?canvasHeight?=?900
var?canvas?=?document.getElementById("canvas")
var?context?=?canvas.getContext("2d")
canvas.width?=?canvasWidth
canvas.height?=?canvasHeight
//引入圖片
var?image?=?new?Image()
//剪輯區(qū)域
var?clippingRegion?=?{x:?300?,?y:?300?,?r:?50}
image.src?=?"image.jpg"
//加載完成圖片后進(jìn)行初始化操作
image.onload?=?function(e){
initCanvas()
}
//初始化后將image圖像繪制在canvas中
function?initCanvas(){
draw(?image?,?clippingRegion?)
}
function?setClippingRegion(?clippingRegion?){
context.beginPath()
context.arc(?clippingRegion.x?,?clippingRegion.y?,?clippingRegion.r?,?0?,?Math.PI*2?,?false?)
context.clip()
}
//繪制圖像
function?draw(?image?,?clippingRegion?){
//清空內(nèi)容
context.clearRect(0?,?0?,?canvas.width?,?canvas.height)
//存儲(chǔ)當(dāng)前狀態(tài)
canvas.save()
//繪制圖像之前將剪輯區(qū)域設(shè)置好
setClippingRegion(?clippingRegion?)
//從左上角即0.0的位置繪制圖像,因?yàn)閳D像和canvas大小一樣,所以無需更改大小
context.drawImage(image?,?0?,?0)
//繪制結(jié)束狀態(tài)恢復(fù)
context.restore()
}
2016-08-03
第60行代碼錯(cuò)了
你寫的是canvas.save()
應(yīng)該是context.save();