drawimage共提供了三个方法:
1.在画布上定位图像。
context.drawimage(img,x,y);
2.在画布上定位图像,并指定图像的宽度和高度。
context.drawimage(img,x,y,width,height);
3.裁切图像,并在画布上定位被裁切的部分。
context.drawimage(img,sx,sy,swidth,sheight,x,y,width,height);
参数描述
img 规定要使用的图像、画布或视频。
sx 开始剪切图像的 x 坐标位置。
sy 开始剪切图像的 y 坐标位置。
swidth 被剪切图像的宽度。
sheight 被剪切图像的高度。
x 在画布上放置图像的 x 坐标位置。
y 在画布上放置图像的 y 坐标位置。
width 要绘制的图像的宽度。(伸展或缩小图像)
height 要绘制的图像的高度。(伸展或缩小图像)
下面代码包含了以上把图像绘制到canvas上的三种方法:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>canvas绘图</title>
<script>
window.onload = function()
{
drawcanvas1();
drawcanvas2();
drawcanvas3();
}
//context.drawimage(img,x,y);
function drawcanvas1()
{
var canvas = document.getelementbyid("mycanvas1");
var context = canvas.getcontext("2d");
//将图片绘制到canvas上
var img = new image();
img.src = "1.jpg";
img.onload = function()
{
context.drawimage(img, 0, 0);
};
context.textalign = "center";
context.filltext("context.drawimage(img,x,y)画原图", 250, 350);
}
//context.drawimage(img,x,y,width,height);
function drawcanvas2()
{
var canvas = document.getelementbyid("mycanvas2");
var context = canvas.getcontext("2d");
//将图片绘制到canvas上
var img = new image();
img.src = "1.jpg";
img.onload = function()
{
context.drawimage(img, 0, 0, 500, 300);
};
context.textalign = "center";
context.filltext("context.drawimage(img,x,y,width,height)指定宽和高进行拉伸和缩放", 250, 350);
}
//context.drawimage(img,sx,sy,swidth,sheight,x,y,width,height);
function drawcanvas3()
{
var canvas = document.getelementbyid("mycanvas3");
var context = canvas.getcontext("2d");
//将图片绘制到canvas上
var img = new image();
img.src = "1.jpg";
img.onload = function()
{
context.drawimage(img, 200,100, 200, 200, 0, 0, 200, 200);
};
context.textalign = "center";
context.filltext("context.drawimage(img,sx,sy,swidth,sheight,x,y,width,height)", 250, 350);
context.filltext("裁切图片的一部分绘制在画布上,并可进行缩放", 250, 370);
}
</script>
</head>
<body>
<canvas id="mycanvas1" width="500" height="400" style="border:#f00 solid 1px">
您的浏览器不支持canvas
</canvas>
<canvas id="mycanvas2" width="500" height="400" style="border:#f00 solid 1px">
您的浏览器不支持canvas
</canvas>
<canvas id="mycanvas3" width="500" height="400" style="border:#f00 solid 1px">
您的浏览器不支持canvas
</canvas>
<br />
</body>
</html>
效果如下:
第一幅:context.drawimage(img, 0, 0)为从画布(0,0)开始绘制,绘制图像原大小。
第二幅:context.drawimage(img, 0, 0, 500, 300)表示为从画布(0,0)开始绘制,并指定绘制图像的宽和高分别为500、300,因此原图会被拉伸或缩小。
第三幅:context.drawimage(img, 200,100, 200, 200, 0, 0, 200, 200);表示从图像的(200,100)位置开始裁切宽和高分别为200、200的部分,并放置在画布的(0,0)位置,并指定绘制图像的宽高分别为200、200。
以上就是html5 canvas画布详解(五)的详细内容。