2.繪製圓形javascript
3.繪製文字html
4.保存文件java
HTML5 <canvas> 元素用於圖形的繪製,經過腳本 (一般是JavaScript)來完成.canvas
<canvas> 標籤只是圖形容器,您必須使用腳原本繪製圖形。字體
你能夠經過多種方法使用Canva繪製路徑,盒、圓、字符以及添加圖像。spa
<script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.fillStyle = "#FF0000"; ctx.fillRect(0, 0, 150, 75); </script>
實例解析:3d
首先,找到 <canvas> 元素:rest
var c=document.getElementById("myCanvas");
而後,建立 context 對象:code
var ctx=c.getContext("2d");
getContext("2d") 對象是內建的 HTML5 對象,擁有多種繪製路徑、矩形、圓形、字符以及添加圖像的方法。orm
下面的兩行代碼繪製一個紅色的矩形:
ctx.fillStyle="#FF0000";
ctx.fillRect(0,0,150,75);
設置fillStyle屬性能夠是CSS顏色,漸變,或圖案。fillStyle 默認設置是#000000(黑色)。
fillRect(x,y,width,height) 方法定義了矩形當前的填充方式。
<!DOCTYPE html> <html> <head lang="en"> <meta charset="utf-8" /> <title></title> </head> <body> <canvas id="myCanvas" width="500" height="350" style="border:1px solid #d3d3d3;"></canvas> </body> <script type="text/javascript"> //1.獲取canvas元素 var c = document.getElementById("myCanvas"); //2.定義一個上下文context var ctx = c.getContext("2d"); //3.填充與繪製邊框 ctx.fillStyle = "green"; //4.繪製樣式 ctx.strokeStyle = "#fff"; //5.設置顏色值 ctx.lineWidth = "5"; //6.設置畫筆寬度 ctx.fillRect(0, 0, 400, 300); //7.繪製矩形 ctx.strokeRect(50, 50, 120, 120); ctx.strokeRect(110, 110, 180, 120);//繪製第2個矩形 </script> </html>
屬性 | 描述 |
---|---|
fillStyle | 設置或返回用於填充繪畫的顏色、漸變或模式。 |
strokeStyle | 設置或返回用於筆觸的顏色、漸變或模式。 |
shadowColor | 設置或返回用於陰影的顏色。 |
shadowBlur | 設置或返回用於陰影的模糊級別。 |
shadowOffsetX | 設置或返回陰影與形狀的水平距離。 |
shadowOffsetY | 設置或返回陰影與形狀的垂直距離。 |
方法 | 描述 |
---|---|
createLinearGradient() | 建立線性漸變(用在畫布內容上)。 |
createPattern() | 在指定的方向上重複指定的元素。 |
createRadialGradient() | 建立放射狀/環形的漸變(用在畫布內容上)。 |
addColorStop() | 規定漸變對象中的顏色和中止位置。 |
屬性 | 描述 |
---|---|
lineCap | 設置或返回線條的結束端點樣式。 |
lineJoin | 設置或返回兩條線相交時,所建立的拐角類型。 |
lineWidth | 設置或返回當前的線條寬度。 |
miterLimit | 設置或返回最大斜接長度。 |
方法 | 描述 |
---|---|
rect() | 建立矩形。 |
fillRect() | 繪製"被填充"的矩形。 |
strokeRect() | 繪製矩形(無填充)。 |
clearRect() | 在給定的矩形內清除指定的像素。 |
方法 | 描述 |
---|---|
fill() | 填充當前繪圖(路徑)。 |
stroke() | 繪製已定義的路徑。 |
beginPath() | 起始一條路徑,或重置當前路徑。 |
moveTo() | 把路徑移動到畫布中的指定點,不建立線條。 |
closePath() | 建立從當前點回到起始點的路徑。 |
lineTo() | 添加一個新點,而後在畫布中建立從該點到最後指定點的線條。 |
clip() | 從原始畫布剪切任意形狀和尺寸的區域。 |
quadraticCurveTo() | 建立二次貝塞爾曲線。 |
bezierCurveTo() | 建立三次貝塞爾曲線。 |
arc() | 建立弧/曲線(用於建立圓形或部分圓)。 |
arcTo() | 建立兩切線之間的弧/曲線。 |
isPointInPath() | 若是指定的點位於當前路徑中,則返回 true,不然返回 false。 |
方法 | 描述 |
---|---|
scale() | 縮放當前繪圖至更大或更小。 |
rotate() | 旋轉當前繪圖。 |
translate() | 從新映射畫布上的 (0,0) 位置。 |
transform() | 替換繪圖的當前轉換矩陣。 |
setTransform() | 將當前轉換重置爲單位矩陣。而後運行 transform()。 |
屬性 | 描述 |
---|---|
font | 設置或返回文本內容的當前字體屬性。 |
textAlign | 設置或返回文本內容的當前對齊方式。 |
textBaseline | 設置或返回在繪製文本時使用的當前文本基線。 |
方法 | 描述 |
---|---|
fillText() | 在畫布上繪製"被填充的"文本。 |
strokeText() | 在畫布上繪製文本(無填充)。 |
measureText() | 返回包含指定文本寬度的對象。 |
方法 | 描述 |
---|---|
drawImage() | 向畫布上繪製圖像、畫布或視頻。 |
屬性 | 描述 |
---|---|
width | 返回 ImageData 對象的寬度。 |
height | 返回 ImageData 對象的高度。 |
data | 返回一個對象,其包含指定的 ImageData 對象的圖像數據。 |
方法 | 描述 |
---|---|
createImageData() | 建立新的、空白的 ImageData 對象。 |
getImageData() | 返回 ImageData 對象,該對象爲畫布上指定的矩形複製像素數據。 |
putImageData() | 把圖像數據(從指定的 ImageData 對象)放回畫布上。 |
屬性 | 描述 |
---|---|
globalAlpha | 設置或返回繪圖的當前 alpha 或透明值。 |
globalCompositeOperation | 設置或返回新圖像如何繪製到已有的圖像上。 |
方法 | 描述 |
---|---|
save() | 保存當前環境的狀態。 |
restore() | 返回以前保存過的路徑狀態和屬性。 |
createEvent() | |
getContext() | |
toDataURL() |
2.繪製圓形
1.開始建立路徑
context.beginPath();
2.建立圓形路徑
建立圓形路徑時,使用圖形上下問對象的arc方法。
context.arc(x,y,r,sAngle,eAngle,counterclockwise);
x
圓的中心的 x 座標。y
圓的中心的 y 座標。r
圓的半徑。sAngle
起始角,以弧度計(弧的圓形的三點鐘位置是 0 度)。eAngle
結束角,以弧度計。counterclockwise
可選。規定應該逆時針仍是順時針繪圖。False = 順時針,true = 逆時針。
繪製半徑與圓弧時指定參數爲開始弧度與結束弧度,若是喜歡使用角度,能夠使用這個方法,把角度換爲弧度
var radius = degrees*Math.PI/180
這裏Math.PI標識角度爲180的角,Math.PI*2角度爲360度。
3.建立完成關閉路徑
context.closePath()
4.設置繪製樣式,而後調用繪製方法進行繪製