Canvas + JavaScript 製作圖片粒子效果
學習canvas,javascript的小夥伴,可以跟著我這篇文章的思路一起做一個小效果出來,程式碼都齊全了。
首先看一下源圖和轉換成粒子效果的對比圖:
左側圖片為源圖,右側圖片為粒子效果圖。該效果是在Canvas畫布上製作的。將圖片製作成粒子效果相對而言是比較簡單的。重點了解兩個知識點即可
1:圖片是通過image物件形式繪製在畫布上的,然後使用Canvas的getImageData介面,獲取影像的畫素資訊。
var imageData=ctx.getImageData(x, y, width, height);
引數說明:x,y為畫布上的x和y座標
width,height為獲取指定區域影像的資訊
返回值說明:imageData為返回值,它是一個物件,包含三個屬性
2:瞭解畫素區域資料的排布說明,以上獲取的圖片資料畫素資訊(imageData物件中的data屬性)為RGBA整型的一維陣列資料。一個畫素是有4個值(R,G,B,A)組成的。也就是說,陣列資訊每四個為一個畫素點。因此,有以下規則,
第一個畫素資訊為:RGBA(data[0],data[1],data[2],data[3])
第二個畫素資訊為:RGBA(data[4],data[5],data[6],data[7])
.....
第N個畫素資訊為: RGBA(data[(n-1)*4],data[(n-1)*4+1],data[(n-1)*4+2],data[(n-1)*4+3])
.....
另外,畫素區域既然是一個區域,它是有寬和高的。上面的推算公式適合單獨一行使用定位一個畫素點。所以計算畫素點時要考慮到在整個影像區域內定位:
以上圖為例。影像的寬和高都為200,如果按照每一個畫素為一行一列時。則該影像共有200行,200列。所以要取得 i 行第 j 列的畫素初始位置資訊為:
var pos =[( i-1 )*200]+( j-1 )]*4;
其中,公式中的 i 表示行數,j 表示列數。200為影像的寬度。
demo程式碼:
上面如果不理解, 對照程式碼執行一下試試理解吧:
這次沒能為粒子加上炫酷的動態效果~~下次補上,找一些演算法就可以粒子動起來的,有興趣可以做做看~
以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助
整個效果的功能都完成了
如果大家想學習canvas,JavaScript,可以加群: 640633433群裡面有每天都會上傳視訊供大家學習,歡迎學習交流的小夥伴過來一起學習交流!
寫在最後:
很多人都知道我是學全棧的,都天真的以為我有全套的前端、網頁製作等視訊學習資料。我想說你們是對的,我的確有前端的全套視訊資料。
如果想看到更加系統的文章和學習方法經驗可以關注我的微信公眾號:‘web前端EDU’關注後回覆可以領取一套完整的學習視訊!
相關文章
- JavaScript 圖片放大鏡效果JavaScript
- canvas繪製圖片drawImage學習Canvas
- GIF動圖怎麼製作?GIF圖片製作
- Dreamweaver製作滑鼠經過圖片漸漸變暗效果教程
- PS製作抽象人物線條GIF動態圖片效果抽象
- 小程式canvas居中剪裁繪製圖片Canvas
- canvas繪製流星效果Canvas
- canvas 繪製的圖片,進行上傳Canvas
- 粒子效果
- PS製作圓角圖片
- 安卓.9圖片製作安卓
- canvas繪製風車效果Canvas
- canvas核心技術-如何繪製圖片和文字Canvas
- JavaScript跟隨滑鼠移動的圖片效果JavaScript
- 圖片馬製作及利用方式
- 小程式利用Canvas繪製圖片和豎排文字Canvas
- 使用 canvas 繪製圖片,然後下載、上傳Canvas
- ??圖片壓縮CanvasCanvas
- canvas 壓縮圖片Canvas
- UIBezierPath+CAShapeLayer繪製微信聊天圖片效果UI
- CSS3製作圖片樣式CSSS3
- WidsMob Montage for Mac(蒙太奇圖片製作)Mac
- canvas繪製網格射線效果Canvas
- canvas繪製卡通人臉形象效果Canvas
- canvas繪製多個圓圈效果Canvas
- 使用css製作滑鼠經過圖片時,放大圖片1.5倍CSS
- 基於canvas生成圖片Canvas
- canvas效能-drawImage渲染圖片Canvas
- canvas-修改圖片亮度Canvas
- 網店logo自己製作,電商產品圖片如何快速製作Go
- vue前端製作圖片,並下載(canvase)Vue前端Canvas
- Blender 效果製作:製作起伏不平的路面
- canvas繪製經典星空連線效果Canvas
- PPT怎麼製作漸變UI圖示?PPT扁平化圖示圖片的製作方法UI
- 分享好用的小紅書圖片製作軟體,輕鬆製圖
- 學習 PixiJS — 粒子效果JS
- iOS 粒子發射效果iOS
- 借用圖文智慧排版製作精美的鎖屏圖片
- 線上圖片製作網站哪個好 PS圖片處理教程網站