前天 是1024程序員節,不知道各位看官過的怎么樣。既然是過節,就要有個過節的樣子,比方說,換個頭像😀。你看我的頭像牛逼不。今天介紹一個小demo,上傳一個靜態頭像,就能得到一個動態的數字雨頭像。搶先體驗傳送門](https://imgss.github.io/demo/gif/)

使用說明
1.傳一個你喜歡的頭像,最后是正方形的
2.生成后看字符顏色是不是太詭異,可以改變字符顏色
3.覺得滿意,右鍵另存為即可
gif.js
今天的主角是gif.js,gif.js是一個在瀏覽器上依靠H5api就能gif動畫的庫,這里介紹一下我猜的坑。關于繪制數字雨,園子里有相關文章,我就不瞎BB了。
gif.js可以很方便的根據canvas動圖得到gif:
//代碼來自官網var gif = new GIF({ workers: 2,//啟用兩個worker。 quality: 10//圖像質量});//創建一個GIF實例// 核心方法,向gif中加一幀圖像,參數可以是img/canvas元素,還可以從ctx中復制一幀gif.addFrame(imageElement);// or a canvas elementgif.addFrame(canvasElement, {delay: 200});//一幀時長是200// or copy the pixels from a canvas contextgif.addFrame(ctx, {copy: true});gif.on('finished', function(blob) {//最后生成一個blob對象 window.open(URL.createObjectURL(blob));});gif.render();//開始啟動整體而言,這個庫的api十分簡潔,友好。之前看了一個jsGif,看的云里霧里,后來才發現這么個好東西。由于生成gif圖像是個耗費cpu的操作,尤其是當圖像比較大的時候,因此庫允許在webworker中渲染。但是文檔中還是有幾個要注意的地方要說明(其實是我踩的坑):
1.git.addFrame是添加一幀,要生成會動的gif,要來一個循環:
for(...){gif.render(...)}2.構造函數GIF的選項中,需要workerScript選項,這樣才能實現在worker中渲染圖像,如下所示:
var gif = new GIF({workers: 2,quality: 10, workerScript:'./gif.worker.js'});源碼我放在github上了,https://github.com/imgss/gif_rain_code,或者F12直接看demo。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答