blob canvas img dataUrl的互相转换和用处
blob:代表了一段二进制数据
初始化:var blob = new Blob(array,option)//其中array里面可以包含任意类型对象,option指数据类型如array是['<h></h>'],我们可以指定option为{'type':'text\/xml'}
衍生品:因为作为二进制需要与外界进行交互,所以分别退出三个衍生品
1:File对象 二进制与本地文件的交互
2:FileReader对象 二进制与本地内存的交互
3:URL对象 二进制与url的交互
FIle对象:
通过html的file控件,用户选择好文件后,我们通过file对象的file[0]可以拿到用户选择的文件(如果用户选择多个文件,可以遍历取得),拿到file文件后其实以一个blob类型的对象,我们可以使用blob的slice进行文件切割或其他处理
FileReader:
FileReader对象接收File对象或Blob对象作为参数,用于读取文件的实际内容,即把文件内容读入内存。对于不同类型的文件,FileReader使用不同的方法读取。
- FileReader.readAsBinaryString(Blob|File) :读取结果为二进制字符串,每个字节包含一个0到255之间的整数。
- FileReader.readAsText(Blob|File, opt_encoding) :读取结果是一个文本字符串。默认情况下,文本编码格式是'UTF-8',可以通过可选的格式参数,指定其他编码格式的文本。
- FileReader.readAsDataURL(Blob|File) : 读取结果是一个基于Base64编码的 data-uri 对象。
- FileReader.readAsArrayBuffer(Blob|File) :读取结果是一个 ArrayBuffer 对象。
然后我们可以在onload方法里面拿到解析后的内容
URL对象:
URL对象用于生成指向File对象或Blob对象的URL:var objecturl = window.URL.createObjectURL(blob);
canvar: 提供了一种js自己创建图形的能力
dataUrl:一种图片数据的编码显示
img:图片标签,展示图片,在这里泛指一切显示控件 如vedio span等
dataUrl转blob:
用途:拿到一个图片后,通过某种方式转换为dataUrl类型,最终转换为blob类型 上传到服务器
用法:第一种可以将图片放入canvas后利用canvas的toblob方法,或者放入canvas后,利用canvas的todataurl方法获取dataurl后 将dataurl转blob:拿到dataurl后获取逗号后面的编码数据利用window.atob将编码解码,将解码后的字符串使用charcodeat获取每一个字符串的unicode字符,然后存入Uint8Array数组,利用blob初始化把Uint8Array数组转换为blob
blob转dataUrl:
用途:拿到blob对象后,希望展示这个数据
用法:使用window.URL.createObjectURL(blob)拿到dataUrl对象,然后进行展示
canvan转blob:canvas 最新的方法 toblob
canvas转dataurl:canvas的实例方法 todataurl
blob转canvas:blob转换为dataurl对象后 新疆一个图片用来显示dataurl数据,然后将图片放入canvas中
dataurl转canvas:dataurl先变成图片再放入canvas
img转canvas:canvas的drawImage方法支持将img放入canvas
canvas转img:利用canvas的todataurl方法获取图片数据后,新建图片控件展示图片
blob canvas img dataUrl的互相转换和用处的更多相关文章
- [转]DataURL与File,Blob,canvas对象之间的互相转换的Javascript
来源 http://blog.csdn.net/cuixiping/article/details/45932793 canvas转换为dataURL (从canvas获取dataURL) var d ...
- DataURL与File,Blob,canvas对象之间的互相转换的Javascript
canvas转换为dataURL (从canvas获取dataURL) var dataurl = canvas.toDataURL('image/png'); var dataurl2 = canv ...
- DataURL与File,Blob,canvas对象之间的互相转换的Javascript (未完)
canvas转换为dataURL (从canvas获取dataURL) var dataurl = canvas.toDataURL('image/png'); var dataurl2 = canv ...
- 前端图片canvas,file,blob,DataURL等格式转换
将file转化成base64 方法一:利用URL.createObjectURL() <!DOCTYPE html> <html> <head> <title ...
- js实现图片资源、blob、base64的各种场景转换
文件转babase64 function getImgToBase64(url,callback){//将图片转换为Base64 var canvas = document.createElement ...
- HTML5 File API — 让前端操作文件变的可能
前言 在 HTML5 File API 出现之前,前端对于文件的操作是非常有局限性的,大多需要配合后端实现.出于安全角度考虑,从本地上传文件时,代码不可能获取文件在用户本地的地址,所以纯前端不可能完成 ...
- 让编辑器支持word的复制黏贴,支持截屏的黏贴
chrome有很多人性化的API,比如拖拽, 比如图片可以转化为base64等: 比如知乎上面的回复中可以直接黏贴图片, 就不需要手动点击图片上传按钮, 选择图片, 确认上传等等: 知乎参考地址:打 ...
- Blob/DataURL/canvas/image的相互转换
函数都比较简单,直接看就ok了 /*-----------------------------------------------------------------------*/ // canva ...
- canvas转img,blob相互转换
摘自:https://www.cnblogs.com/jyuf/p/7251591.html 函数都比较简单,直接看就ok了 /*----------------------------------- ...
随机推荐
- iOS深浅拷贝
浅拷贝:你和你的影子,你改变,你的影子发生改变 深拷贝:你的克隆人,你改变,你的克隆人并不会发生变化 eg: NSString *string = @"我是一个小白鼠"; NSSt ...
- Oracle游标介绍
Oracle游标使用详解: 游标: 用来查询数据库,获取记录集合(结果集)的指针,我们所说的游标通常是指显式游标,因此从现在起没有特别指明的情况,我们所说的游标都是指显式游标.要在程序中使用游标,必须 ...
- 虚拟机——虚拟机VMware Workstation 的.vmdk格式与VirtualBox 的.vdi格式相互转换
啦啦啦~~~ 由于现在Vmware Workstation的越来越普及,让很多小伙伴不知道怎么把以前用的VirtualBox虚拟机vdi格式转换成vmdk格式,下面我们就来转换一下吧... 第一步:找 ...
- 关于IE浏览器 ajax 请求返回数据不对的问题
在使用ajax向后台发送请求的时候,在使用ie 进行调试的时候发现根据条件进行查询时,返回的数据与没有根据条件进行查询时数据相同,也就是条件没有发生作用. 经过同事的帮助发现ajax初始化设置时没有c ...
- 易爆物D305
分析:典型的并查集,每一个物品合一看成一个独立的顶点,则一个简单化合物就是一条边,如果两个顶点x,y联通则说明有危险,所以可以用一个并查集来维护图的联通分量集合,并查集的详解有一篇写的很易懂的博客并查 ...
- ftp 上传和下载
ftp 下载 #!/bin/bash #auth liwei #date DATE=$(date -d today +%Y%m%d) #data files path SRCDIR=/home/web ...
- SQL Server实现远程访问
1.打开SQL Server 配置管理器(SQL Server Configuration Manager) 2.启用SQL Server网络配置的TCP/IP:选中左侧的「SQL Server网络配 ...
- axios请求
axios.get('/user?ID=12345') .then(function (response) { console.log(response); console.log(response. ...
- sourceTree 代码冲突解决
1.代码提交,有冲突 2. 拉取未同步的代码,勾选用衍合代替合并. 3. 在工作副本,未提交代码显示 4. 冲突代码解决 5. sourcetree页面
- CentOS 7安装mysql(rpm)
1.检查是否安装了mysql rpm -qa|grep -i mysql centos7默认是安装的mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb 2 ...