canvas+gif.js打造自己的数字雨头像的示例代码

 更新时间:2017年10月26日 10:42:31   作者:nobody-junior  
本篇文章主要介绍了canvas+gif.js打造自己的数字雨头像的示例代码,这里整理了详细的代码,非常具有实用价值,需要的朋友可以参考下

前天 是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 element
gif.addFrame(canvasElement, {delay: 200});//一帧时长是200

// or copy the pixels from a canvas context
gif.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。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Javascript如何理解全国甲卷高考作文

    Javascript如何理解全国甲卷高考作文

    这篇文章主要介绍了Javascript如何理解全国甲卷高考作文,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 分享纯手写漂亮的表单验证

    分享纯手写漂亮的表单验证

    最近没有项目做,闲来没事,于是自己动手写了几个表单验证,特此分享供大家参考
    2015-11-11
  • 重学 JS:为啥 await 不能用在 forEach 中详解

    重学 JS:为啥 await 不能用在 forEach 中详解

    这篇文章主要介绍了重学 JS:为啥 await 不能用在 forEach 中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • JavaScript实现简单购物小表格

    JavaScript实现简单购物小表格

    这篇文章主要为大家详细介绍了JavaScript实现简单购物小表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • JavaScript学习小结(7)之JS RegExp

    JavaScript学习小结(7)之JS RegExp

    在js中,正则表达式是由一个RegExp对象表示的,RegExp 是正则表达式的缩写。RegExp简单的模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。可以使用一个RegExp()构造函数来创建RegExp对象,也可以使用直接量语法
    2015-11-11
  • javascript连续赋值问题

    javascript连续赋值问题

    本文通过具体的示例来给大家详细解释了下javascript的连续赋值问题,十分的实用,有需要的小伙伴可以参考下。
    2015-07-07
  • 微信小程序自定义select下拉选项框组件的实现代码

    微信小程序自定义select下拉选项框组件的实现代码

    微信小程序中没有select下拉选项框,所以只有自定义。这篇文章主要介绍了微信小程序自定义select下拉选项框组件,需要的朋友可以参考下
    2018-08-08
  • 详解JavaScript函数

    详解JavaScript函数

    这篇文章主要介绍了JavaScript函数,函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块,需要的朋友可以参考下
    2015-12-12
  • Elasticsearch工具cerebro的安装与使用教程

    Elasticsearch工具cerebro的安装与使用教程

    这篇文章主要介绍了Elasticsearch工具cerebro的安装与使用教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 基于bootstrap插件实现autocomplete自动完成表单

    基于bootstrap插件实现autocomplete自动完成表单

    这篇文章主要介绍了基于bootstrap插件实现autocomplete自动完成表单的相关资料,感兴趣的朋友可以参考一下
    2016-05-05

最新评论