您现在的位置是:网站首页> 编程资料编程资料
Data URI scheme详解和使用实例及图片base64编码实现方法使用data URI scheme在网页中内嵌图片使用介绍
2021-09-01
1150人已围观
简介 这篇文章主要介绍了Data URI scheme详解和使用实例及图片base64编码实现方法,需要的朋友可以参考下
一、 Data URI scheme 简介
Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并转到,就能看到它了,一张1X36的白灰png图片。
在上面的Data URI中,data表示取得数据的协定名称,image/png 是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。
或许你已经注意到,在有的网页上,图片的 src 或 css 背景图片的 url 并不是我们常见的在线图片链接,而是一大串的字符,比如像这样:
这是什么呢?这就是今天要介绍的 Data URI scheme。
目前,Data URI scheme支持的类型有:
data:,文本数据
data:text/plain,文本数据
data:text/html,HTML代码
data:text/html;base64,base64编码的HTML代码
data:text/css,CSS代码
data:text/css;base64,base64编码的CSS代码
data:text/javascript,Javascript代码
data:text/javascript;base64,base64编码的Javascript代码
data:image/gif;base64,base64编码的gif图片数据
data:image/png;base64,base64编码的png图片数据
data:image/jpeg;base64,base64编码的jpeg图片数据
data:image/x-icon;base64,base64编码的icon图片数据
base64简单地说,它把一些 8-bit 数据翻译成标准 ASCII 字符,在PHP中可以用函数base64_encode() 进行编码。
目前,IE8、Firfox、Chrome、Opera浏览器都支持这种小文件嵌入。对于 IE7 及之前版本,可通过使用MHTML 解决 data URI scheme 的兼容问题。
举例说明
网页中一张图片可以这样显示:

也可以这样显示:
我们把图像文件的内容直接写在了HTML 文件中,这样做的好处是,节省了一个HTTP 请求使得加载速度得以提升,坏处则可能导致浏览器不会缓存这种图像。
二、图片 base64 编码的实现方法示例
2.1 JS实现图片 base64 编码代码
function readFile(){
var file = this.files[0];
if(!/image\/\w+/.test(file.type)){
alert("请确保文件为图像类型");
return false;
}
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(e){
result.innerHTML = '
img_area.innerHTML = '
}
}
2.2 利用 HTML5 的 FileReader 实现图片 base64 编码
HTML5 Javascript 版本核心代码:
function readFile(){
var file = this.files[0];
if(!/image\/\w+/.test(file.type)){
alert("请确保文件为图像类型");
return false;
}
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(e){
result.innerHTML = '
img_area.innerHTML = '
}
}
相关内容
- html5实现canvas阴影效果示例canvas 阴影和图形变换的示例代码HTML5 canvas基本绘图之绘制阴影效果实例讲解使用HTML5 Canvas绘制阴影效果的方法HTML5 Canvas阴影使用方法实例演示canvas多重阴影发光效果实现
- Html5 语法与规则简要概述HTML学习笔记--HTML的语法详解(必看)简单整理HTML5的基本特性和语法详解HTML&CSS&JavaScript语法辞典-(专业版) (半场方人) PDF扫描版 93.1HTML5的语法变化介绍HTML5 新旧语法标记对我们有什么好处HTML语法大全_html语言语法大全(必看)
- html5桌面通知(Web Notifications)实例解析Html5中的桌面通知Notification的实现HTML5实现桌面通知 提示功能HTML5实现Notification API桌面通知功能 突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面HTML5中的Web Notification桌面通知功能的实现方法
- HTML5实现WebSocket协议原理浅析HTML5+WebSocket实现多文件同时上传的实例HTML5-WebSocket实现聊天室示例浅析HTML5的WebSocket与服务器推送事件html5的websockets全双工通信详解学习示例利用html5的websocket实现websocket聊天室html5-websocket基于远程方法调用的数据交互实现基于HTML5的WebSocket的实例代码
- HTML5新增的表单元素和属性实例解析详解HTML5表单新增属性HTML Form表单元素全面了解html5表单及新增的改良元素详解HTML5 的新的表单元素(datalist/keygen/output)使用介绍HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注HTML标记语言——表单HTML表单标记教程(2):HTML表单标记教程(4):带有图片预览功能的上传表单的完整HTMLXHTML入门学习教程:表单标签
- HTML5+CSS3实现拖放(Drag and Drop)示例5分钟弄清楚html5的drag and drop(小结)HTML5 拖放(Drag 和 Drop)详解与实例代码详解HTML5中的拖放事件(Drag 和 drop)突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述HTML5 drag和drop具体使用详解
- html5的自定义data-*属性与jquery的data()方法的使用详解HTML5 data-* 自定义属性HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)全面解析HTML5中的标准属性与自定义属性HTML5的自定义属性data-*详细介绍和JS操作实例HTML5自定义data-* data(obj)属性和jquery的data()方法的使用HTML5自定义属性的问题分析
- Html5新特性用canvas标签画多条直线附效果截图HTML5 canvas标签实现刮刮卡效果HTML5 Canvas标签使用收录详解HTML5 Canvas标签及基本使用
- HTML5在canvas中绘制复杂形状附效果截图html5使用html2canvas实现浏览器截图的示例HTML5+CSS3模仿优酷视频截图功能示例canvas与html5实现视频截图功能示例Html5新特性用canvas标签画多条直线附效果截图html+css+jquery模仿搜索风云榜选项卡效果有截图HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)使用HTML截图并保存为本地图片的实现代码
- HTML5 在canvas中绘制矩形附效果图html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
