這篇文章主要介紹了HTML5 Canvas API#中drawImage()方法的使用實例,drawImage()方法主要用來縮放或裁切,文中給了其座標及相關參數的用法,需要的朋友可以參考下
drawImage()是一個很關鍵的方法,它可以引入圖像、畫布、影片,並對其進行縮放或裁剪。
一共有三種表現形式:
語法1
context.drawImage(img,dx,dy);
語法2
context.drawImage(img,dx,dy,dw,dw);
語法3
##JavaScript Code複製內容到剪貼簿
context.drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh);來看座標草圖:
圖片會自動放大或縮小。 三參數的是標準形式,可用於載入影像、畫布或影片;五參數的除了可以載入影像還可以對影像進行指定寬高的縮放;九參數的除了縮放,還可以裁剪。各參數意義見下表。
描述 |
|
---|---|
#可選。開始剪切的 x 座標位置。 | |
可選。開始剪切的 y 座標位置。 | |
width | 可選。被剪切影像的寬度。|
height | 可選。被剪切影像的高度。|
在畫布上放置影像的 x 座標位置。 | |
在畫布上放置影像的 y 座標位置。 | |
可選。要使用的圖像的寬度。 (伸展或縮小影像) | |
要使用的影像的高度。 (伸展或縮小圖像) |
JavaScript Code复制内容到剪贴板 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>drawImage()</title> <style> body { background: url("./images/bg3.jpg") repeat; } #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; } </style> </head> <body> <p id="canvas-warp"> <canvas id="canvas"> 你的浏览器居然不支持Canvas?!赶快换一个吧!! </canvas> </p> <script> window.onload = function(){ var canvas = document.getElementById("canvas"); canvas.width = 800; canvas.height = 600; var context = canvas.getContext("2d"); context.fillStyle = "#FFF"; context.fillRect(0,0,800,600); var img = new Image(); img.src = "./images/20-1.jpg"; img.onload = function(){ context.drawImage(img,200,50); } }; </script> </body> </html>
這裡,我們結合
clip()和drawImage()以及三次貝塞爾曲線bezierCurveTo(),來為上面一個案例,加上一個心形的相框~
JavaScript Code复制内容到剪贴板 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>绘制心形相框</title> <style> body { background: url("./images/bg3.jpg") repeat; } #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; } </style> </head> <body> <p id="canvas-warp"> <canvas id="canvas"> 你的浏览器居然不支持Canvas?!赶快换一个吧!! </canvas> </p> <script> window.onload = function(){ var canvas = document.getElementById("canvas"); canvas.width = 800; canvas.height = 600; var context = canvas.getContext("2d"); context.fillStyle = "#FFF"; context.fillRect(0,0,800,600); context.beginPath(); context.moveTo(400,260); context.bezierCurveTo(450,220,450,300,400,315); context.bezierCurveTo(350,300,350,220,400,260); context.clip(); context.closePath(); var img = new Image(); img.src = "./images/20-1.jpg"; img.onload = function(){ context.drawImage(img,348,240,100,100); } }; </script> </body> </html>運行結果:
以上是HTML5 Canvas API中drawImage()方法的使用程式碼實例分享(圖)的詳細內容。更多資訊請關注PHP中文網其他相關文章!