canvas所支持的image api是非常强大的;我们可以直接加载图像,将其显示在canvas上,也可以切割和拼接显示所需的任何图像部分;
此外,canvas给我们提供的存储其像素数据的功能,我们可以通过操纵像素数据,然后重新绘制到canvas上。
虽然canvas只有提供少数的image api函数,但它开辟一个像素级别操纵的世界;
它使开发人员可直接在web浏览器中创建优化的应用程序,而无需任何插件。
canvas api允许访问dom定义的image对象:a1f02c36ba31691bcfe87b2722de723ba376092e9406724d5c271fcc648ed25a,
同时也支持用javascript创建image对象实例:var img1=new image();
创建image后,可以设置它的路径:img1.src=my.png;
当image在代码中被调用前,我们要确保它可以被加载,被使用;当image的load事件发生时,我们可以创建一个监听事件去触发对image的操作;
img1.addeventlistener('load', eventloaded , false);
当image完全加载完成,eventloaded将被触发执行;在些事件中,我们可以来执行对image的操作;
function eventloaded() { drawscreen();//对image操作的主要方法入口; }
显示image(display image);
方法:drawimage(image,x,y):
image表示将要绘制的图像;
(x,y)表示image绘制在canvas上时,image左上角的位置;
调整image大小(resize image)
方法:drawimage(image,x,y,width,height):
image表示原始图像;
把image按照参数[width,height]调整大小,形成newimage;
(x,y)表示newimage绘制在canvas上时,newimage左上角的位置;
取image的一些部分(part of image)
drawimage(image, sx, sy, sw, sh, x, y, width, height)
image表示原始图像;
点(sx,xy)与[宽sw,高sh]形成一个矩形,是针对image的操作,取原始image的一部分形成新的partimage;
把partimage按照参数[width,height]调整大小,形成newimage;
(x,y)表示newimage绘制在canvas上时,newimage左上角的位置;
example实例:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>images</title>
<script type="text/javascript" src="../script/modernizr-latest.js"></script>
<script type="text/javascript">
window.addeventlistener("load", eventwindowloaded, false);
function eventwindowloaded() {
canvasapp();
}
function canvassupport() {
return modernizr.canvas;
}
function eventwindowloaded() {
canvasapp();
}
function canvasapp() {
if(!canvassupport()) {
return;
}
var thecanvas = document.getelementbyid("canvasone");
var context = thecanvas.getcontext("2d");
var imgmain = new image();
imgmain.addeventlistener('load', eventloaded, false);
imgmain.src = "image.png";
function eventloaded() {
drawscreen();
}
function drawscreen() {
context.fillstyle = "#eeeeee";
context.fillrect(0, 0, thecanvas.width, thecanvas.height)
//display image107*86
context.drawimage(imgmain, 0, 0);
context.drawimage(imgmain, 120, 0);
//resize image
context.drawimage(imgmain, 0, 90, 107, 86);
context.drawimage(imgmain, 120, 90, 53, 43);
context.drawimage(imgmain, 190, 90, 26, 21);
//part of image
context.drawimage(imgmain, 0, 0, 107, 86, 0, 180, 107, 86);
context.drawimage(imgmain, 0, 0, 57, 86, 120, 180, 57, 86);
context.drawimage(imgmain, 50, 0, 57, 86, 190, 180, 57, 86);
context.drawimage(imgmain, 0, 0, 57, 43, 260, 180, 57, 43);
context.drawimage(imgmain, 50, 43, 57, 43, 330, 223, 57, 43);
}
}
</script>
</head>
<body>
<div style="position: absolute; top: 50px; left: 50px;">
<canvas id="canvasone" width="500" height="300">
your browser does not support html5 canvas.
</canvas>
</div>
</body>
</html>
实例中引用的图:
实例效果图:
以上就是html5 canvas image的图文代码详解(一) 的详细内容。