利用DataURL技术在网页上显示图片
来源:互联网 发布:知乎 1024地址 编辑:程序博客网 时间:2024/06/08 14:24
DataURL是什么?
DataURL是一种对文件进行编码,并将编码后的内容嵌入及呈现在另一个文件中的规范/协议。
目前DataURL用得最多的领域是把图片文件转化成DataURL(此时,这个DataURL就是这个图片的所有内容)并在网页上利用<img>
直接输出,而非给<img>
指定文件路径让浏览器另行下载。
DataURL的格式是怎么样的?
data:
[<mediatype>][;base64],<data>
示例1:data:,Hello%2C%20World!
//简单的text/plain类型数据
示例2:data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D
//base64编码过的text/plain类型数据
示例3:data:image/jpg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/4QLQRXhp……
//base64编码过的jpg图片,由于数据太长,用省略号代替
其中mediatype表示MIME,不填就默认是text/plain
,紧跟着的是字符编码类型,默认是;US-ASCII
,这两项都是可选的,但需要注意的是,
逗号是一定要有的。
DataURL怎么生成?
下面从前、后端的方向分别谈谈怎么生成DataURL。
前端(浏览器)如何生成DataURL?
这得从DataURL的应用场景说起,前端多是利用DataURL来显示图片,这图片来源的途径无非有两点:一是服务器发来的(这点放到后面讲),二则是从用户本地“上传”来的。
过去的“上传图片”,是把图片从用户本地发送至服务器保存后再获取到图片地址,并将这地址放到<img>
里显示,实际上就是让浏览器又从服务器上下载下来。而如今,有了HTML5的file api,可以直接从用户本地读取出图片:利用file:input或拖拽操作选定图片并包装成一个file对象,利用FileReader从file对象中读取数据并可转化为DataURL(具体请看我的另外一篇文章:《利用html5 file api读取本地文件(如图片、PDF等)》)。
后端(服务器)如何生成DataURL?
所谓DataURL,实际上就是base64编码+MIME,按照这个思路,我们只需要先把图片(文件)转化成base64编码,再查出图片的MIME,按照DataURL的格式来拼接即可。
举个例子,php的:
$img_file = file_get_contents(“http://www.oschina.net/img/logo_s2.png“);
echo ‘data:image/png;base64,’ . base64_encode($img_file);
- 利用DataURL技术在网页上显示图片
- 图片在网页上不能显示
- [乐意黎转载]图片的DataURL技术
- 在flask实现CKEditor和在网页上显示图片
- HTML技术:如何在网页中图片的随机显示
- 如何在网页上显示数据库中保存的图片
- 蒙版flash在网页图片上的显示
- 使png 图片在网页上透明显示
- 浏览本机图片并在网页上显示
- 网页制作,怎么在浏览器标签上显示图片
- c#get网页图片并显示在picturebox上
- 一维码,直接显示在网页上不直接写图片
- 利用OPenCV在MFC对话框上显示图片
- 利用opencv将两张图像在同一窗口上显示,并在图片上显示文字
- 本地图片显示在网页
- word显示在网页上
- PDF在网页上显示
- imageView显示保存在服务器的图片,不是网页上的图片
- android ProgressBar 实现自定义进度条
- hdu1269 强连通分量
- HTTP文件断点上传
- Premiere Pro CS6基础视频教程
- 分析 Package manager has died
- 利用DataURL技术在网页上显示图片
- 大数加法
- Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:]
- (四十一)auto命令
- iOS开之代理传值
- 2015-12-03 AndroidStudio模拟器运行失败的问题
- 从小白慢慢往上爬的历程--几种简单的流程控制语句
- SQL语句中别名中有括号的情况
- Linux学习笔记(7) 之Shell变量