图片转成gif 变成base64
html2canvas 截屏的插件
http://jnordberg.github.io/gif.js/ GIF.js官网
使用h5的canvas提供的接口很容易实现一些动画,如果能把这些动画实现成gif动图就更好啦,还真有大神实现啦这个功能下面说明使用方法
开源库地址
首先引入需要的js文件gif.js在页面里自己创建一个canvas并且在它上面画一些动画
js附件在后面下载
然后就是gif的使用方法啦var gif = new GIF({
workers: 2,
quality: 10
});
// 添加一个图片标签对象像素到当前帧
gif.addFrame(imageElement);
//或添加一个canvas对象的像素到当前帧
gif.addFrame(document.getElementsByTagName('canvas')[0], {
delay: 200
});
gif.addFrame(document.getElementsByTagName('canvas')[0], {
delay: 200
});
gif.addFrame(document.getElementsByTagName('canvas')[0], {
delay: 200
});
//从canvas context复制像素到当前帧
gif.addFrame(ctx, {
copy: true
});
//合成图片成功后
gif.on('finished', function(blob) {
window.open(URL.createObjectURL(blob));
});
//渲染图片
gif.render();
附录:创建GIF对象的配置参数参数默认描述repeat0重复播放 -1 = 不重复, 0 = 重复
quality10图片质量越小越质量越好
workers2number of web workers to spawn
workerScriptgif.worker.js原版请注意下路径,文章中的附件已经添加自动查找路径
background#fff当原图像为透明时进行替换的背景色
widthnull输出图片的宽
heightnull输出图片的高
transparentnull原图片中要透明的十六进制颜色, 0x00FF00 = green
ditherfalsedithering method, e.g. FloydSteinberg-serpentine
debugfalse调试为true时会打印日志到console
如果宽或者高为null的话就以添加的第一帧大小为准
要注意的一个地方使用canvas context这个添加图片数据的时候,如果是第一帧,则会因为没有初始化大小,而从context里也找不出来大小,所以会报错,正确方法是实例化GIF时传入宽高的配置,这样添加图片帧的三个方法使用才会正常
addFrame 参数参数默认描述delay500帧延时,设置为0时自动转成500
copyfalse复制像素数据
制作透明gif图片的方法var gif = new GIF({
workers: 2,
quality: 10,
background: '#ffffff',//原透明色替换为白色
transparent: 0xffffff//把图片中的白色替换为gif的透明色
});
使用addFrame添加图片数据的时候把背景设置成#ffffff白色,生成gif图片时图片中的白色就自动变成透明啦
备注:使用环境必须是在服务器环境下
图片转成gif 变成base64的更多相关文章
- 减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)
在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文我们讲解了 “利用将小图标合成一张背景图来减少HTTP请求”, ...
- 图片转换成Base64编码集成到html文件
首先为什么要这么做? 原因很简单这样可以减少与服务器的请求,当然对于一些浏览器并不支持,如IE8.通常用在手机版网站中,具体转化方法如下: 1.在线打开Base64的编码器将图片编码成Base64 ...
- 运用C语言将图片转换成16进制的字符串(base64)
最近在写手机端的性能测试脚本的时候,发现手机在上传图片数据时,先将图片转换成一堆16进制的字符,将字符传输过去,服务器再将字符解码成图片 我们在loadrunner中测试时,就需要用C语言将图片编码. ...
- java 图片转换成base64字符串
import java.io.ByteArrayOutputStream; import java.io.FileInputStream;import java.io.FileOutputStream ...
- JS将图片转换成Base64码
直接上代码 html页面代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- js绝对地址图片转换成base64的方法
//将图片转换成base64 function getBase64Image(url, callback){ var canvas = document.createElement('canvas') ...
- 利用PHP将图片转换成base64编码的实现方法
先来说一下为什么我们要对图片base64编码 base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一.base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于网络传输. ...
- data:image/png;base64 上传图像将图片转换成base64格式
大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJ ...
- 图片转成base64, base64转成图片
1.我们在看代码时经常在img或css背景图片中看到: src=”data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOusbgA ...
- Java对网络图片/本地图片转换成Base64编码和解码
一.将本地图片转换成Base64编码字符串 /** * 将本地图片转换成Base64编码字符串 * * @param imgFile 图片目录路径 * @return */ public static ...
随机推荐
- golang for 循环
1.for 循环 for循环是Golang唯一的循环语句. for 初始表达式; 布尔表达式; 迭代因子 { 循环体; } package main import "fmt" fu ...
- 硬件IIC调试问题排查
目录 沁恒蓝牙系列芯片中目前只有CH582/583以及208包含有硬件IIC外设,本文均使用582进行测试,其他沁恒芯片也可以参考本文排查. 先进行"常规"检查,检查相关引脚的焊接 ...
- Mysql数据库简单常用语句
Mysql数据库简单常用语句 1.命令连接数据库 mysql -h 127.0.0.1 -u root -p 2.新增用户 GRANT SELECT on 数据库.* to 用户名@登录主机 iden ...
- 谷歌浏览器上elementUI的按钮文字消失了
解决方案:有个谷歌浏览器插件,好像是什么淘宝的,删掉即可
- .net core 根据需求不同的数据有不同的颜色
- SpringBoot + Quartz 集成
Quartz 应用启动加载集群配置 @Bean 注解交由 Spring BeanFactory 容器管理 @Bean public JobDetailFactoryBean testJobDetail ...
- slitaz中tazpkg更改软件源
在tazpkg手册中可以查到保存tazpkg软件源网址的文件,/var/lib/tazpkg/mirror
- 前台主页功能-前台轮播图功能完成-git介绍和安装-git使用流程-git常用命令-git忽略文件
目录 前台主页功能-前台轮播图功能完成-git介绍和安装-git使用流程-git常用命令-git忽略文件 昨日内容回顾 今日内容概要 今日内容详细 0 导出项目依赖 0 学长问题解析 1 前台主页功能 ...
- uni-app学习笔记之----传参、通讯
1.页面传参 父级页面传递参数到详情页: 详情页得到参数: 打印: 2.组件通信 (1)子组件---->父组件:$emit() (2)父组件---->子组件:props (3)兄弟组件: ...
- 19_webpack_externals
假如我们购买了CDN服务器为我们的网站的访问速度进行优化,那么我们,该如何配置 假如我的CDN为:https://mr-hou88888/cdn/那么publicPath该如何配置 1.配置publi ...