在我們打開某個網頁的時候,可能會看到有的頁面中有顏色的漸變,感覺很好看,那麼,這種漸變色是如何實現的呢?所謂漸層色其實就是顏色間的過渡,而html5 Canvas漸層是用來填滿或描邊圖形的色彩模式,所以,利用canvas如何實現顏色的漸層?本篇文章就來跟大家介紹一下canvas漸變色的實作。
我們要知道canvas提供了兩個物件來建立漸變,漸層可以填入矩形、文字、線條等。
canvas漸變可以分為線性漸變和徑向漸層:
canvas建立線性漸變的函數是createLinearGradient(x,y,x1,y1)
canvas建立徑向漸層的函數是createRadialGradient(x,y,r,x1,y1,r1)
下面我們就來分別看看canvas的線性漸層和徑向漸層如何實現顏色的漸層。
先來看看canvas線性漸層:
線性漸層是以線性的模式來改變顏色,也就是水平,垂直或對角方向。
我們直接來看canvas線性漸變的例子:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <canvas id="myCanvas"></canvas> <script type="text/javascript"> var canvas=document.getElementById("myCanvas"); if(canvas && canvas.getContext){ var ctx=canvas.getContext("2d"); var grad=ctx.createLinearGradient(0,0,300,0); //创建一个渐变色线性对象 grad.addColorStop(0,"yellow"); //定义渐变色颜色 grad.addColorStop(1,"green"); ctx.fillStyle=grad; //设置fillStyle为当前的渐变对象 ctx.fillRect(0,0,300,100); //绘制渐变图形 } </script> </body> </html>
canvas線性漸變效果如下:
說明:上面這個canvas線性漸變的例子實現的是水平方向的漸變,如果想要實現垂直方向的漸變色只需要將參數y和y1設為不同就可以了,想要實現對角方向的漸層色則需要將水平和垂直方向上的參數都設為不同。 (ps:具體的實作可以自己試試,這裡就不多說了)
看完了線性漸變我們就來看一下canvas徑向漸層的實#現。
徑向漸層是以圓形模式來改變顏色的,顏色以圓形的中心向外擴散。
我們也來直接看一個canvas徑向漸層的例子:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <canvas id="myCanvas" width="400px" height="300px"></canvas> <script type="text/javascript"> var canvas=document.getElementById("myCanvas"); if(canvas && canvas.getContext){ var ctx=canvas.getContext("2d"); var grad=ctx.createRadialGradient(200,200,50,200,200,200) //创建一个渐变色线性对象 grad.addColorStop(0,"yellow"); //定义渐变色颜色 grad.addColorStop(1,"green"); ctx.fillStyle=grad; //设置fillStyle为当前的渐变对象 ctx.fillRect(0,0,400,400); //绘制渐变图形 } </script> </body> </html>
canvas徑向漸層的效果如下:
需要注意的是:在繪製徑向漸層時,可能會因為Canvas的寬度或高度設定不合適,導致徑向漸層顯示不完全,需要考慮調整Canvas的尺寸。
說明:上述canvas徑向漸層的程式碼中其實是兩個圓,這兩個圓的圓心分別是(x,y)和(x1,y1),半徑則是r和r1;最重要的是這兩個圓必須設定不同的半徑,形成一個內圓和一個外圓。這樣漸層色就從一個圓形輻射到另一個圓形。
這篇文章到這裡全部就結束了,關於canvas的更多內容大家可以參考HTML5開發手冊。
以上是canvas漸層色:canvas如何達到漸層色的效果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!