HTML5 canvas畫布詳解(一)
Canvas的特點
Canvas畫布是一個矩形區域,可以控制其每一個像素
Canvas使用JavaScript來控制畫圖
Canvas具有直線、矩形、圓以及添加圖像的方法
Canvas標籤的使用
下面的程式碼是使用canvas畫面繪製一個200*200紅色矩形:
<!Doctype html> <html> <head> <title>我的canvas页面</title> <meta charset="utf-8"/> </head> <body> <canvas id="myCanvas" width="200" height="200"> </canvas> <script type="text/javascript"> var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d"); cxt.fillStyle="#FF0000"; cxt.fillRect(0,0,200,200); </script> </body> </html>
登入後複製
將上面的程式碼儲存為canvas.html,並將其編碼設為utf-8(否則中文亂碼),使用瀏覽器開啟就可以看到如下效果:
<canvas id="myCanvas" width="200" style="max-width:90%">
登入後複製
這裡 建立Canvas 標籤,並定義其id為myCanvas,以便於JavaScript繪圖時取得該標籤物件。
再看JavaScript繪圖部分:
var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d"); cxt.fillStyle="#FF0000"; cxt.fillRect(0,0,200,200);
登入後複製
第一句getElementById,透過Canvas標籤的ID取得canvas物件。
第二句getContext,取得context物件。
第三句呼叫Context物件的方法fillStyle,即填滿其顏色。
第四句呼叫Context物件的fillRect方法指定填滿的區域。
Canvas的其他實例
直線
<!Doctype html><html><head><title>我的canvas页面</title> <meta charset="utf-8"/> </head> <body> <canvas id="myCanvas" width="200" height="200"> </canvas> <script type="text/javascript"> var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d"); cxt.moveTo(10,10); cxt.lineTo(150,50); cxt.lineTo(10,50); cxt.stroke();</script></body></html>
登入後複製
運行結果如下:
圓
<!Doctype html> <html> <head> <title>我的canvas页面</title> <meta charset="utf-8"/> </head> <body> <canvas id="myCanvas" width="200" height="200"> </canvas> <script type="text/javascript"> var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d"); cxt.fillStyle="#FF0000"; cxt.beginPath(); cxt.arc(70,18,15,0,Math.PI*2,true); cxt.closePath(); cxt.fill();</script></body></html>
登入後複製
運行結果如下:
漸變
<!Doctype html><html><head><title>我的canvas页面</title> <meta charset="utf-8"/> </head> <body> <canvas id="myCanvas" width="200" height="200"> </canvas> <script type="text/javascript"> var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d"); var grd=cxt.createLinearGradient(0,0,175,50); grd.addColorStop(0,"#FF0000"); grd.addColorStop(1,"#00FF00"); cxt.fillStyle=grd; cxt.fillRect(0,0,175,50); </script> </body> </html>
登入後複製
效果如下:
映像
<!Doctype html> <html> <head> <title>我的canvas页面</title> <meta charset="utf-8"/> </head> <body> <canvas id="myCanvas" width="800" height="600"> </canvas> <script type="text/javascript"> var c=document.getElementById("myCanvas"); var cxt=c.getContext("2d"); var img=new Image(); img.src="1.png"; img.onload=function(e){ cxt.drawImage(img,0,0); } cxt.drawImage(img,0,0); </script> </body> </html>
登入後複製
注意,一定要給Img添加onload事件,否則圖片不顯示。
其中,1.png為自己找的圖片素材。開啟頁面可以看到圖片顯示在canvas畫布了。我的運行效果如下,圖片百度隨便找的,湊合看~~
以上是HTML5 canvas畫布詳解(一)的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
Windows 11 KB5054979中的新功能以及如何解決更新問題
4 週前
By DDD
如何修復KB5055523無法在Windows 11中安裝?
3 週前
By DDD
Inzoi:如何申請學校和大學
1 個月前
By DDD
如何修復KB5055518無法在Windows 10中安裝?
3 週前
By DDD
在哪裡可以找到Atomfall中的站點辦公室鑰匙
4 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)