HTML5 Canvas API中drawImage()方式的应用案例

日期:2021-02-27 类型:科技新闻 

关键词:小程序如何制作,预约小程序,微信小程序怎么做,微信抽奖小程序,小程序外包

drawImage()是1个很重要的方式,它能够引进图象、画布、视頻,并对其开展放缩或剪裁。

1共有3种主要表现方式:

英语的语法 1

JavaScript Code拷贝內容到剪贴板
  1. context.drawImage(img,dx,dy);  

英语的语法 2

JavaScript Code拷贝內容到剪贴板
  1. context.drawImage(img,dx,dy,dw,dw);  

英语的语法 3

JavaScript Code拷贝內容到剪贴板
  1. context.drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh);   

看来1下座标草图:

PS: 不必在款式中界定<canvas> 的宽和高,不然,里边所画的照片会全自动变大或变小。
3主要参数的是规范方式,能用于载入图象、画布或视頻;5主要参数的除能够载入图象还能够对图象开展特定宽高的放缩;9主要参数的除放缩,还能够剪裁。各主要参数实际意义见下表。
主要参数

叙述
img sx 可选。刚开始裁切的 x 座标部位。 sy 可选。刚开始裁切的 y 座标部位。 swidth 可选。被裁切图象的宽度。 sheight 可选。被裁切图象的高宽比。 x 在画布上置放图象的 x 座标部位。 y 在画布上置放图象的 y 座标部位。 width 可选。要应用的图象的宽度。(屈伸或变小图象) height 要应用的图象的高宽比。(屈伸或变小图象)

下面,大家载入1个照片试试。

JavaScript Code拷贝內容到剪贴板
  1. <!DOCTYPE html>   
  2. <html lang="zh">   
  3. <head>   
  4.     <meta charset="UTF⑻">   
  5.     <title>drawImage()</title>   
  6.     <style>   
  7.         body { background: url("./images/bg3.jpg") repeat; }  
  8.         #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
  9.     </style>   
  10. </head>   
  11. <body>   
  12. <div id="canvas-warp">   
  13.     <canvas id="canvas">   
  14.         你的访问器竟然不适用Canvas?!赶紧换1个吧!!   
  15.     </canvas>   
  16. </div>   
  17.   
  18. <script>   
  19.     window.onload = function(){   
  20.         var canvas = document.getElementById("canvas");   
  21.         canvas.width = 800;   
  22.         canvas.height = 600;   
  23.         var context = canvas.getContext("2d");   
  24.         context.fillStyle = "#FFF";   
  25.         context.fillRect(0,0,800,600);   
  26.   
  27.         var img = new Image();   
  28.         img.src = "./images/20⑴.jpg";   
  29.         img.onload = function(){   
  30.             context.drawImage(img,200,50);   
  31.         }   
  32.     };   
  33. </script>   
  34. </body>   
  35. </html>  

运作結果:

建立相框:
这里,大家融合clip()和drawImage()和3次贝塞尔曲线图bezierCurveTo(),来为上面1个实例,再加1个心形的相框~

JavaScript Code拷贝內容到剪贴板
  1. <!DOCTYPE html>   
  2. <html lang="zh">   
  3. <head>   
  4.     <meta charset="UTF⑻">   
  5.     <title>绘图心形相框</title>   
  6.     <style>   
  7.         body { background: url("./images/bg3.jpg") repeat; }  
  8.         #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
  9.     </style>   
  10. </head>   
  11. <body>   
  12. <div id="canvas-warp">   
  13.     <canvas id="canvas">   
  14.         你的访问器竟然不适用Canvas?!赶紧换1个吧!!   
  15.     </canvas>   
  16. </div>   
  17.   
  18. <script>   
  19.     window.onload = function(){   
  20.         var canvas = document.getElementById("canvas");   
  21.         canvas.width = 800;   
  22.         canvas.height = 600;   
  23.         var context = canvas.getContext("2d");   
  24.         context.fillStyle = "#FFF";   
  25.         context.fillRect(0,0,800,600);   
  26.   
  27.         context.beginPath();   
  28.         context.moveTo(400,260);   
  29.         context.bezierCurveTo(450,220,450,300,400,315);   
  30.         context.bezierCurveTo(350,300,350,220,400,260);   
  31.         context.clip();   
  32.         context.closePath();   
  33.   
  34.         var img = new Image();   
  35.         img.src = "./images/20⑴.jpg";   
  36.         img.onload = function(){   
  37.             context.drawImage(img,348,240,100,100);   
  38.         }   
  39.     };   
  40. </script>   
  41. </body>   
  42. </html>  

运作結果:

是否美美的?好啦,至此最重要的遮罩和图象剪裁和说完了,实际上在java.awt中,drawImage()也是1个相当关键的方式。有人说制做Java手机游戏页面,要是会用drawImage()便可以1招打遍天地~在Canvas里也是1样的。美工出示的素材基础全是照片,这个情况下drawImage()对照片的解决就很关键了。即便基础功,也是对照片最关键的解决方式。

上一篇:HTML5中的新元素详细介绍 返回下一篇:没有了