想寫出炫酷的畫面嗎?看看Canvas 吧!

在前端的工作過程中,我們需要用到圖片的時候,是怎樣的操作呢?

其實,很簡單。切吧。沒有什么圖片是一次切圖搞不定的,如果有,那就切兩次!

哈哈,好吧。其實,還是有很多種方法讓我們能夠得到圖片的。現在介紹下一種神奇的方法吧,它能夠讓你通過代碼寫出畫面!想想是不是很有逼格!來吧,讓我帶你裝逼帶你飛!


炫酷的宇宙

首先,你要知道,它是什么?

Canvas?

Canvas API(畫布)是H5新增的標簽,用于在網頁實時生成圖像。并且可以操作圖像內容,基本上也就是通過JS來操作的一種位圖。

這里插播一條:位圖與矢量圖的區別。

矢量圖:根據幾何特性,通過線段和曲線描述圖像

? ? ? ? 1、矢量圖形與分辨率無關(放大后不失真)

? ? ? ? 2、色彩不豐富

? ? ? ? 3、文件后綴(.ai? .eps? svg? .dwg? .dxf? .cdr)

? ? ? ? 4、占用空間,相對較小

位圖:通過像素的一格一格的小點來描述圖像(也就可以稱作點陣圖像)

? ? ? ??1、位圖與分辨率有關(放大后失真)

? ? ? ? 2、色彩豐富

? ? ? ? 3、文件后綴(.bmp? .gif? .jpg? .tif? .psd)

? ? ? ? 4、占用空間,相對較大


程序員的色彩

而我們通過Canvas 所寫出來的圖片都是位圖!!!

好了,現在來開始學習Canvas 的基本知識點吧。

首先,通過Canvas 來畫線:

在 Body 內 有一個 <canvas id="myCanvas" width="600px" height="400px"></canvas>的封閉標簽。通過設置該標簽的JS 便可以實現畫線的功能了。

var myCanvas = document.getElementById("myCanvas");

var ctx = myCanvas.getContext("2d");

ctx.moveTo(0,0);

ctx.lineTo(300,300);

ctx.lineTo(600,0);

ctx.lineWidth = 10; ? ? ? ? ? ? ? ? // 設置線的寬度

ctx.strokeStyle = "yellow"; ? ? ? ? // 設置線的顏色

ctx.stroke();


Canvas 的布局

通過Canvas 來畫矩形:(前面同上)

ctx.rect(100,100,200,300); ? ? ? ? ? ?// 設置矩形的起始點和長寬

ctx.lineWidth = 10; ? ? ? ? ? ? ? ? ? // 設置寬

ctx.strokeStyle = "#0000FF" ? ?// 設置顏色

ctx.stroke();

補充》》ctx.fillRect(200,200,150,150); ? ? ? ? // ?畫實心矩形的方法 ?ctx.fillRect

通過Canvas 來寫文本:

ctx.font = "50px 隸書";

ctx.fillText("奧特曼打小怪獸",100,200); ? ? ? ? ? ? ? ?// 后面兩個參數設置位置

ctx.strokeText("你在誰的身邊看",50,100);


就是這樣的效果

最后來看看放射性漸變

var gradient = ctx.createRadialGradient(300,200,10,300,200,200); ? ? ? ? ?//前三個參數,表示小圓心,小半徑 ?后三個參數,表示 大圓心, 大半徑

gradient.addColorStop(0,"white");

gradient.addColorStop(0.5,"red");

gradient.addColorStop(0.7,"green");

gradient.addColorStop(1,"yellow");

ctx.fillStyle = gradient;

ctx.arc(300,200,200,0,Math.PI*2);

ctx.fill();


上面效果如圖

當然,這些就是基礎技能啦!如果你的技能進階的話,就會有神奇的事情發生哦。比如小面的效果圖,也都是Canvas 寫出來的哈!


混亂時代


蹦跳的世界


你知道嗎?
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一:canvas簡介 1.1什么是canvas? ①:canvas是HTML5提供的一種新標簽 ②:HTML5 ...
    GreenHand1閱讀 4,719評論 2 32
  • 啥是canvas? HTML5 標簽用于繪制圖像(通過腳本,通常是 JavaScript)。不過, 元素本身...
    kiaizi閱讀 791評論 0 4
  • 一、canvas簡介 1.1 什么是canvas?(了解) 是HTML5提供的一種新標簽 Canvas是一個矩形區...
    Looog閱讀 3,973評論 3 40
  • 一、canvas簡介 1.1 什么是canvas?(了解) 是HTML5提供的一種新標簽 Canvas是一個矩形區...
    J_L_L閱讀 1,558評論 0 4
  • 天下萬物,日月行天 勇而不敢,拈花微笑 得之則少,失之彌多 人剛我柔,隨心從緣 心中無敵,無敵天下 舍己從人,歸去...
    與你仗劍天涯閱讀 1,163評論 0 1