# HTML 5 Canvas 參考手冊
## 描述
HTML5 <canvas> 標簽用于繪制圖像(通過腳本,通常是 JavaScript)。
不過,<canvas> 元素本身并沒有繪制能力(它僅僅是圖形的容器) - 您必須使用腳本來完成實際的繪圖任務。
getContext() 方法可返回一個對象,該對象提供了用于在畫布上繪圖的方法和屬性。
本手冊提供完整的 getContext("2d") 對象屬性和方法,可用于在畫布上繪制文本、線條、矩形、圓形等等。
## 瀏覽器支持
Internet Explorer 9、Firefox、Opera、Chrome 以及 Safari 支持 <canvas> 及其屬性和方法。
注釋:Internet Explorer 8 以及更早的版本不支持 <canvas> 元素。
## 顏色、樣式和陰影
| 屬性 | 描述 |
| --- | --- |
| [fillStyle](/tags/canvas_fillstyle.asp "HTML5 canvas fillStyle 屬性") | 設置或返回用于填充繪畫的顏色、漸變或模式 |
| [strokeStyle](/tags/canvas_strokestyle.asp "HTML5 canvas strokeStyle 屬性") | 設置或返回用于筆觸的顏色、漸變或模式 |
| [shadowColor](/tags/canvas_shadowcolor.asp "HTML5 canvas shadowColor 屬性") | 設置或返回用于陰影的顏色 |
| [shadowBlur](/tags/canvas_shadowblur.asp "HTML5 canvas shadowBlur 屬性") | 設置或返回用于陰影的模糊級別 |
| [shadowOffsetX](/tags/canvas_shadowoffsetx.asp "HTML5 canvas shadowOffsetX 屬性") | 設置或返回陰影距形狀的水平距離 |
| [shadowOffsetY](/tags/canvas_shadowoffsety.asp "HTML5 canvas shadowOffsetY 屬性") | 設置或返回陰影距形狀的垂直距離 |
| 方法 | 描述 |
| --- | --- |
| [createLinearGradient()](/tags/canvas_createlineargradient.asp "HTML5 canvas createLinearGradient() 方法") | 創建線性漸變(用在畫布內容上) |
| [createPattern()](/tags/canvas_createpattern.asp "HTML5 canvas createPattern() 方法") | 在指定的方向上重復指定的元素 |
| [createRadialGradient()](/tags/canvas_createradialgradient.asp "HTML5 canvas createRadialGradient() 方法") | 創建放射狀/環形的漸變(用在畫布內容上) |
| [addColorStop()](/tags/canvas_addcolorstop.asp "HTML5 canvas addColorStop() 方法") | 規定漸變對象中的顏色和停止位置 |
## 線條樣式
| 屬性 | 描述 |
| --- | --- |
| [lineCap](/tags/canvas_linecap.asp "HTML5 canvas lineCap 屬性") | 設置或返回線條的結束端點樣式 |
| [lineJoin](/tags/canvas_linejoin.asp "HTML5 canvas lineJoin 屬性") | 設置或返回兩條線相交時,所創建的拐角類型 |
| [lineWidth](/tags/canvas_linewidth.asp "HTML5 canvas lineWidth 屬性") | 設置或返回當前的線條寬度 |
| [miterLimit](/tags/canvas_miterlimit.asp "HTML5 canvas miterLimit 屬性") | 設置或返回最大斜接長度 |
## 矩形
| 方法 | 描述 |
| --- | --- |
| [rect()](/tags/canvas_rect.asp "HTML5 canvas rect() 方法") | 創建矩形 |
| [fillRect()](/tags/canvas_fillrect.asp "HTML5 canvas fillRect() 方法") | 繪制“被填充”的矩形 |
| [strokeRect()](/tags/canvas_strokerect.asp "HTML5 canvas strokeRect() 方法") | 繪制矩形(無填充) |
| [clearRect()](/tags/canvas_clearrect.asp "HTML5 canvas clearRect() 方法") | 在給定的矩形內清除指定的像素 |
## 路徑
| 方法 | 描述 |
| --- | --- |
| [fill()](/tags/canvas_fill.asp "HTML5 canvas fill() 方法") | 填充當前繪圖(路徑) |
| [stroke()](/tags/canvas_stroke.asp "HTML5 canvas stroke() 方法") | 繪制已定義的路徑 |
| [beginPath()](/tags/canvas_beginpath.asp "HTML5 canvas beginPath() 方法") | 起始一條路徑,或重置當前路徑 |
| [moveTo()](/tags/canvas_moveto.asp "HTML5 canvas moveTo() 方法") | 把路徑移動到畫布中的指定點,不創建線條 |
| [closePath()](/tags/canvas_closepath.asp "HTML5 canvas closePath() 方法") | 創建從當前點回到起始點的路徑 |
| [lineTo()](/tags/canvas_lineto.asp "HTML5 canvas lineTo() 方法") | 添加一個新點,然后在畫布中創建從該點到最后指定點的線條 |
| [clip()](/tags/canvas_clip.asp "HTML5 canvas clip() 方法") | 從原始畫布剪切任意形狀和尺寸的區域 |
| [quadraticCurveTo()](/tags/canvas_quadraticcurveto.asp "HTML5 canvas quadraticCurveTo() 方法") | 創建二次貝塞爾曲線 |
| [bezierCurveTo()](/tags/canvas_beziercurveto.asp "HTML5 canvas bezierCurveTo() 方法") | 創建三次方貝塞爾曲線 |
| [arc()](/tags/canvas_arc.asp "HTML5 canvas arc() 方法") | 創建弧/曲線(用于創建圓形或部分圓) |
| [arcTo()](/tags/canvas_arcto.asp "HTML5 canvas arcTo() 方法") | 創建兩切線之間的弧/曲線 |
| [isPointInPath()](/tags/canvas_ispointinpath.asp "HTML5 canvas isPointInPath() 方法") | 如果指定的點位于當前路徑中,則返回 true,否則返回 false |
## 轉換
| 方法 | 描述 |
| --- | --- |
| [scale()](/tags/canvas_scale.asp "HTML5 canvas scale() 方法") | 縮放當前繪圖至更大或更小 |
| [rotate()](/tags/canvas_rotate.asp "HTML5 canvas rotate() 方法") | 旋轉當前繪圖 |
| [translate()](/tags/canvas_translate.asp "HTML5 canvas translate() 方法") | 重新映射畫布上的 (0,0) 位置 |
| [transform()](/tags/canvas_transform.asp "HTML5 canvas transform() 方法") | 替換繪圖的當前轉換矩陣 |
| [setTransform()](/tags/canvas_settransform.asp "HTML5 canvas setTransform() 方法") | 將當前轉換重置為單位矩陣。然后運行 transform() |
## 文本
| 屬性 | 描述 |
| --- | --- |
| [font](/tags/canvas_font.asp "HTML5 canvas font 屬性") | 設置或返回文本內容的當前字體屬性 |
| [textAlign](/tags/canvas_textalign.asp "HTML5 canvas textAlign 屬性") | 設置或返回文本內容的當前對齊方式 |
| [textBaseline](/tags/canvas_textbaseline.asp "HTML5 canvas textBaseline 屬性") | 設置或返回在繪制文本時使用的當前文本基線 |
| 方法 | 描述 |
| --- | --- |
| [fillText()](/tags/canvas_filltext.asp "HTML5 canvas fillText() 方法") | 在畫布上繪制“被填充的”文本 |
| [strokeText()](/tags/canvas_stroketext.asp "HTML5 canvas strokeText() 方法") | 在畫布上繪制文本(無填充) |
| [measureText()](/tags/canvas_measuretext.asp "HTML5 canvas measureText() 方法") | 返回包含指定文本寬度的對象 |
## 圖像繪制
| 方法 | 描述 |
| --- | --- |
| [drawImage()](/tags/canvas_drawimage.asp "HTML5 canvas drawImage() 方法") | 向畫布上繪制圖像、畫布或視頻 |
## 像素操作
| 屬性 | 描述 |
| --- | --- |
| [width](/tags/canvas_imagedata_width.asp "HTML5 canvas width 屬性") | 返回 ImageData 對象的寬度 |
| [height](/tags/canvas_imagedata_height.asp "HTML5 canvas height 屬性") | 返回 ImageData 對象的高度 |
| [data](/tags/canvas_imagedata_data.asp "HTML5 canvas data 屬性") | 返回一個對象,其包含指定的 ImageData 對象的圖像數據 |
| 方法 | 描述 |
| --- | --- |
| [createImageData()](/tags/canvas_createimagedata.asp "HTML5 canvas createImageData() 方法") | 創建新的、空白的 ImageData 對象 |
| [getImageData()](/tags/canvas_getimagedata.asp "HTML5 canvas getImageData() 方法") | 返回 ImageData 對象,該對象為畫布上指定的矩形復制像素數據 |
| [putImageData()](/tags/canvas_putimagedata.asp "HTML5 canvas putImageData() 方法") | 把圖像數據(從指定的 ImageData 對象)放回畫布上 |
## 合成
| 屬性 | 描述 |
| --- | --- |
| [globalAlpha](/tags/canvas_globalalpha.asp "HTML5 canvas globalAlpha 屬性") | 設置或返回繪圖的當前 alpha 或透明值 |
| [globalCompositeOperation](/tags/canvas_globalcompositeoperation.asp "HTML5 canvas globalCompositeOperation 屬性") | 設置或返回新圖像如何繪制到已有的圖像上 |
## 其他
| 方法 | 描述 |
| --- | --- |
| save() | 保存當前環境的狀態 |
| restore() | 返回之前保存過的路徑狀態和屬性 |
| createEvent() |
| getContext() |
| toDataURL() |
- HTML 標簽列表
- HTML <!--...--> 標簽
- HTML <!DOCTYPE> 標簽
- HTML <a> 標簽
- HTML <abbr> 標簽
- HTML <acronym> 標簽
- HTML <address> 標簽
- HTML <applet> 標簽
- HTML <area> 標簽
- HTML <article> 標簽
- HTML <aside> 標簽
- HTML <audio> 標簽
- HTML <b> 標簽
- HTML <base> 標簽
- HTML <basefont> 標簽
- HTML <bdi> 標簽
- HTML <bdo> 標簽
- HTML <big> 標簽
- HTML <blockquote> 標簽
- HTML <body> 標簽
- HTML <br> 標簽
- HTML <button> 標簽
- HTML <canvas> 標簽
- HTML <caption> 標簽
- HTML <center> 標簽
- HTML <cite> 標簽
- HTML <em> <strong> <dfn> <code> <samp> <kbd><var> <cite> 標簽
- HTML <col> 標簽
- HTML <colgroup> 標簽
- HTML <command> 標簽
- HTML <datalist> 標簽
- HTML <dd> 標簽
- HTML <del> 標簽
- HTML <details> 標簽
- HTML <dialog> 標簽
- HTML <dir> 標簽
- HTML <div> 標簽
- HTML <dl> 標簽
- HTML <dt> 標簽
- HTML <embed> 標簽
- HTML <fieldset> 標簽
- HTML <figcaption> 標簽
- HTML <figure> 標簽
- HTML <font> 標簽
- HTML <footer> 標簽
- HTML <form> 標簽
- HTML <frame> 標簽
- HTML <frameset> 標簽
- HTML <h1> 到 <h6> 標簽
- HTML <head> 標簽
- HTML <header> 標簽
- HTML <hr> 標簽
- HTML <html> 標簽
- HTML <i> 標簽
- HTML <iframe> 標簽
- HTML <img> 標簽
- HTML <input> 標簽
- HTML DOM Button 對象
- HTML DOM Checkbox 對象
- HTML DOM Color 對象
- HTML DOM Input Date 對象
- HTML DOM Datetime 對象
- HTML DOM Datetime Local 對象
- HTML DOM Email 對象
- HTML DOM FileUpload 對象
- HTML DOM Hidden 對象
- HTML DOM Input Image 對象
- HTML DOM Month 對象
- HTML DOM Number 對象
- HTML DOM Password 對象
- HTML DOM Input Range 對象
- HTML DOM Radio 對象
- HTML DOM Reset 對象
- HTML DOM Input Search 對象
- HTML DOM Submit 對象
- HTML DOM Text 對象
- HTML DOM Input Time 對象
- HTML DOM Input URL 對象
- HTML DOM Input Week 對象
- HTML <ins> 標簽
- HTML <keygen> 標簽
- HTML <label> 標簽
- HTML <legend> 標簽
- HTML <li> 標簽
- HTML <link> 標簽
- HTML <main> 標簽
- HTML <map> 標簽
- HTML <mark> 標簽
- HTML <menu> 標簽
- HTML <menuitem> 標簽
- HTML <meta> 標簽
- HTML <meter> 標簽
- HTML <nav> 標簽
- HTML <noframes> 標簽
- HTML <noscript> 標簽
- HTML <object> 標簽
- HTML <ol> 標簽
- HTML <optgroup> 標簽
- HTML <option> 標簽
- HTML <output> 標簽
- HTML <p> 標簽
- HTML <param> 標簽
- HTML <pre> 標簽
- HTML <progress> 標簽
- HTML <q> 標簽
- HTML <rp> 標簽
- HTML <rt> 標簽
- HTML <ruby> 標簽
- HTML <s> 標簽
- HTML <script> 標簽
- HTML <section> 標簽
- HTML <select> 標簽
- HTML <small> 標簽
- HTML <source> 標簽
- HTML <span> 標簽
- HTML <strike> 標簽
- HTML <style> 標簽
- HTML <sub> 標簽
- HTML <summary> 標簽
- HTML <sup> 標簽
- HTML <table> 標簽
- HTML <tbody> 標簽
- HTML <td> 標簽
- HTML <textarea> 標簽
- HTML <tfoot> 標簽
- HTML <th> 標簽
- HTML <thead> 標簽
- HTML <time> 標簽
- HTML <title> 標簽
- HTML <tr> 標簽
- HTML <track> 標簽
- HTML <tt> 標簽
- HTML <u> 標簽
- HTML <ul> 標簽
- HTML <video> 標簽
- HTML <wbr> 標簽
- HTML 全局屬性
- HTML accesskey 屬性
- HTML class 屬性
- HTML contenteditable 屬性
- HTML contextmenu 屬性
- HTML data-* 屬性
- HTML dir 屬性
- HTML draggable 屬性
- HTML dropzone 屬性
- HTML hidden 屬性
- HTML id 屬性
- HTML lang 屬性
- HTML spellcheck 屬性
- HTML style 屬性
- HTML tabindex 屬性
- HTML title 屬性
- HTML translate 屬性
- HTML 事件屬性
- HTML 5 視頻/音頻參考手冊
- HTML 5 Canvas 參考手冊
- HTML 元素和有效的 DTD
- HTML 顏色名
- HTML 字符集
- HTML ASCII 參考手冊
- HTML ISO-8859-1 參考手冊
- HTML 4.01 符號實體
- HTML URL 編碼
- HTML 語言代碼參考手冊
- HTTP 狀態消息
- HTTP 方法:GET 對比 POST
- 免責聲明