canvas教程

Canvas学习笔记(七)--应用图像

字号+ 作者:H5之家 来源:H5之家 2016-01-22 12:15 我要评论( )

Canvas学习笔记(七)--应用图像

1、图像简介

 

此功能可以用于图片合成或者制作背景等。目前仅可以在图像中加入文字(标准说明中并没有包含绘制文字的功能)、加入图片(如 PNG,GIF,JPEG等)、加入其他的canvas元素。

 

2、引入图像的步骤

 

1)获取JavaScript的Image对象或者其它的canvas元素。但不能是简单的image路径或url;

 

2)使用drawImage()函数绘制图形;

 

3、获取图像的方式

 

1)使用页面中存在的图片。通过ocument.images 、document.getElementsByTasName

、document.getElementById方法来获取页面内的图片;

 

2)使用其它的已经准备好的canvas元素。使用document.getElementsByTasName

或者document.getElementById方法来获取

 

3)使用脚本创建新的Image对象。需要注意图片预加载的问题。

 

4)使用data:url引用图片。优点:减少图片连接数,图片变成了页面的一部分,不需要额外的请求服务器。缺点:图片无法缓存,增加页面的大小。

 

4、绘制图像的方法介绍

 

drawImage(image,x,y)--绘制简单图像

 

image:image对象或者canvas对象;

 

x,y:图像在画布中的起始坐标;

 

drawImage(image,x,y,width,height)--图像缩放

 

image:image对象或者canvas对象;

 

x,y:图像在画布中的起始坐标;

 

width:图像显示的宽度;

 

height:图像显示的高度;

 

drawImage(image,sx,sy,sWidth,sHeight,dx,dy,dWidth,dHeight)--图像切片

 

image:image对象或者canvas对象;

 

sx,sy:切片在图像源中的起始坐标;

 

sWidth,sHeight: 切片在图像源中的宽度和高度;

 

dx,dy:切片在目标中显示的起始坐标;

 

dWidth,dHeight: 切片在目标中相识的宽度和高度;

 

可以参考下面的图片:


5、绘图实例

 

代码实例如下:

 

 

Js代码  收藏代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3.   <head>  
  4.     <style type="text/css">  
  5.         .wraper {  
  6.             position: relative;  
  7.             float: left;  
  8.             margin-left: 10px;  
  9.             margin-top: 10px;  
  10.             border: 1px solid orange;  
  11.         }  
  12.     </style>  
  13.     <script type="text/javascript">  
  14.         function draw(){  
  15.   
  16.             //简单的绘制图像(一)  
  17.             var image = new Image();  
  18.             image.src = "image/gateway-logo1.jpg";  
  19.   
  20.             var canvas1 = document.getElementById('test1');  
  21.             if(canvas1.getContext){  
  22.                 var context = canvas1.getContext('2d');  
  23.                 context.drawImage(image,10,10);  
  24.             }  
  25.   
  26.             //简单的绘制图像(二)  
  27.             var can2 = document.getElementById('test2');  
  28.             var image2 = new Image();  
  29.             image2.onload = function(){  
  30.                 if(can2.getContext){  
  31.                     var cxt2 = can2.getContext('2d');  
  32.                     cxt2.drawImage(image2,0,10);  
  33.   
  34.                     cxt2.strokeStyle = "rgba(0,0,200,1)";  
  35.                     cxt2.beginPath();  
  36.                     cxt2.moveTo(40,160);  
  37.                     cxt2.lineTo(50,100);  
  38.                     cxt2.lineTo(100,20);  
  39.                     cxt2.lineTo(130,150);  
  40.                     cxt2.lineTo(180,80);  
  41.                     cxt2.stroke();  
  42.                 }  
  43.             };  
  44.             image2.src = "image/XY.png";  
  45.   
  46.             //图像缩放  
  47.             var image3_1 = new Image();  
  48.             image3_1.src = "image/ac.jpg";  
  49.   
  50.             var image3_2 = new Image();  
  51.             image3_2.src = "image/ac_2.jpg";  
  52.   
  53.               
  54.             var can3 = document.getElementById('test3');  
  55.             if(can3.getContext){  
  56.                 var cxt3 = can3.getContext('2d');  
  57.   
  58.                 cxt3.drawImage(image3_1,5,5,90,90);  
  59.                 cxt3.drawImage(image3_2,100,100,90,90);  
  60.             }  
  61.   
  62.             //图像切片  
  63.             var can4 = document.getElementById('test4');  
  64.             var image4 = new Image();  
  65.             image4.onload = function(){  
  66.                 if(can4.getContext){  
  67.                     var cxt4 = can4.getContext('2d');  
  68.   
  69.                     cxt4.drawImage(image4,620,175,100,170,50,10,100,180);  
  70.                 }  
  71.             };  
  72.             image4.src = "image/ac_2.jpg";  
  73.   
  74.               
  75.   
  76.         }  
  77.     </script>  
  78.   </head>   
  79.     
  80.   <body onload="draw();">  
  81.       
  82.     <canvas id="test1" width="200px" height="200px" class="wraper"></canvas>  
  83.   
  84.     <canvas id="test2" width="200px" height="200px" class="wraper"></canvas>  
  85.   
  86.     <canvas id="test3" width="200px" height="200px" class="wraper"></canvas>  
  87.   
  88.     <canvas id="test4" width="200px" height="200px" class="wraper"></canvas>  
  89.   
  90.   
  91.   </body>  
  92. </html>  

 

 

显示的效果:

 

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • html5canvas核心技术图形、动画与游戏开发源码

    html5canvas核心技术图形、动画与游戏开发源码

    2017-05-02 17:42

  • 打印html5中Canvas的方法

    打印html5中Canvas的方法

    2017-05-01 15:03

  • HTML5+Canvas调用手机拍照功能实现图片上传(下)

    HTML5+Canvas调用手机拍照功能实现图片上传(下)

    2017-04-30 17:00

  • HTML5新特性详解(三)

    HTML5新特性详解(三)

    2017-04-30 16:03

网友点评