HTML5 Canvas drawImage图像绘制

HTML5中引入新的元素canvas,其drawImage 方法允许在 canvas 中插入其他图像( img 和 canvas 元素) 。drawImage函数有三种函数原型:

语法:

drawImage(image, dx, dy) 

drawImage(image,dx,dy,dw,dh)

drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh)

*第一个参数image可以用HTMLImageElement,HTMLCanvasElement或者HTMLVideoElement作为参数。

*dx、dy是image在canvas中定位的坐标值;

*dw、dh是image在canvas中即将绘制区域(相对dx和dy坐标的偏移量)的宽度和高度值;

*sx、sy是image所要绘制的起始位置;

*sw、sh是image所要绘制区域(相对image的sx和sy坐标的偏移量)的宽度和高度值。

HTML5 Canvas drawImage图像绘制

/*绘制图片

drawImage(x,y);

HTML5中引入新的元素canvas,其drawImage 方法允许在 canvas 中插入其他图像( img 和 canvas 元素) 。drawImage函数有三种函数原型:

drawImage(image, dx, dy)

drawImage(image,dx,dy,dw,dh)

drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh)

*第一个参数image可以用HTMLImageElement,HTMLCanvasElement或者HTMLVideoElement作为参数。

*dx、dy是image在canvas中定位的坐标值;

*dw、dh是image在canvas中即将绘制区域(相对dx和dy坐标的偏移量)的宽度和高度值;

*sx、sy是image所要绘制的起始位置;

*sw、sh是image所要绘制区域(相对image的sx和sy坐标的偏移量)的宽度和高度值。

*/

functiondrawImage(){

Ca();

varcanvas=draw();

varimage=newImage();

image.src="_image.png";

image.onload=function(){

for(vari=0;i<5;i++){

canvas.drawImage(image,i*50,i*25,379,80);

}

};

}

接下来我们来画一个局部特写的图片和一组平铺图片

/*局部绘制

这里我们利用宽高可控制缩放

*/

functiondrawImageArea(){

Ca();

varcanvas=draw();

varimage=newImage();

image.src="_image.png";

image.onload=function(){

canvas.drawImage(image,180,20,100,60,50,25,379,80);

};

}

/*图片

createPattern可以实现平铺图片

createPattern(image,type)

image为要平铺的图像

type分为:

no-repeat:不平铺

repeat-x:横向平铺

repeat-y:纵向平铺

repeat:整体平铺

*/

functiondrawImagePingPu(){

Ca();

varcanvas=draw();

varimage=newImage();

image.src="_image.png";

image.onload=function(){

varpp=canvas.createPattern(image,'repeat');

canvas.fillStyle=pp;

canvas.fillRect(0,0,wh.width,wh.height);

};

}

最后我们看一下剪裁图片,剪裁要与路径配合使用,通过路径与图像交叉的形式,调用clip方法剪裁图像。

/*图片剪裁

通过路径与图像交叉的形式,调用clip方法剪裁图像

*/

functiondrawImageClip(){

Ca();

varcanvas=draw();

varimage=newImage();

canvas.save();//保存当前画布

image.onload=function(){

canvas.beginPath();

canvas.arc(220,100,100,0,2*Math.PI,true);//创建圆形剪裁路径

canvas.clip();//剪裁

canvas.drawImage(image,180,20,100,60,50,25,379,80);

};

image.src = "_image.png";

}

更多信息请查看 java进阶网 http://www.javady.com/index.php/category/thread