html5将图片转换成base64的实例代码


Posted in HTML / CSS onSeptember 21, 2016

base64编码介绍
base64是一种网络上常用的8bit字节代码的编码方式,base64可以用于http环境下传递较长的标识信息,同时可以放在url当中使用,因为base64不惧可读性,所以具有一定的加密功能。

为什么要把图片转换成base64编码?
将图片转换成base64代码可以减少http请求,因为图片可以以字符编码的形式直接传递到客户端,而文件形式都需要进行http请求。但是也会有一个小缺点,就是图片编码化base64的时候大小会变大,但是通过gzip优化以后基本差不多。所以在应用的过程当中较小的图片可以直接编码成base64,较大的图片则不建议如此使用。

html5如何将图片转换成base64?
html5如果要将图片转换成base64需要使用到一个html5的接口FileReader.readAsDataURL()接口说明,这个接口可以将文件转换成base64编码格式,并且再以data:URL的形式展现出来。

示例程序
下面的代码是示例程序,创建一个新html文件,然后将代码复制粘贴使用支持html5的浏览器打开即可查看效果。

复制代码
代码如下:

<!Doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>html5 image to base64</title>
</head>
<body>
<script type="text/javascript">
window.onload = function(){
// 抓取上传图片,转换代码结果,显示图片的dom
var img_upload=document.getElementById("img_upload");
var base64_code=document.getElementById("base64_code");
var img_area=document.getElementById("img_area");
// 添加功能出发监听事件
img_upload.addEventListener('change',readFile,false);}
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(){
base64_code.innerHTML = this.result;
img_area.innerHTML = '<div>图片img标签展示:</div><img src="'+this.result+'" alt=""/>';
}
}
</script>
<input type="file" id="img_upload"/>
<textarea id="base64_code" rows="30" cols="360"></textarea>
<p id="img_area"></p>
</body>
</html>

html5图片转换base64代码

html5将图片转换成base64的实例代码

程序的设计思路
1.创建三个html标签,input用来上传图片,textarea用来显示base64代码,因为base64代码内容很多所以使用textarea标签,p标签用来显示图片。
2.使用js调用html5的FileReader.readAsDataURL()的API,声明三个变量用于控制图片上传,base64代码显示以及图片的显示。
3.img_upload.addEventListener('change',readFile,false);添加一个监听事件,如果上传文件发生变化就执行readFile函数。
4.readFile函数的内容就是调用接口,将图片转换成base64再输出。
5.在执行转换和输出之前先判断一下上传文件是不是图片。

代码解析及注意
1.var file=this.files[0];这里是抓取到上传的对象。
2.this.result这个result是FileReader.readAsDataURL()接口当中转换完图片输出的base64结果存放在result当中。在代码当中添加console.log(reader);查看一下FileReader对象就可以看到。(reader是我自己起的对象的名称)

html5将图片转换成base64的实例代码

我使用html5将图片转换成base64代码的目的主要是想将图片写入到浏览器本地的数据当中来使用,上传的时候,再尝试恢复出来上传图片。目的是为了减少本地浏览器应用和服务器的数据通信。

总结
以上就是这篇文章的全部内容,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

HTML / CSS 相关文章推荐
CSS3中文字镂空、透明值、阴影效果设置示例小结
Mar 07 HTML / CSS
css3实现图片遮罩效果鼠标hover以后出现文字
Nov 05 HTML / CSS
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
Jul 21 HTML / CSS
CSS3简单实现照片墙
Dec 12 HTML / CSS
CSS3 边框效果
Nov 04 HTML / CSS
CSS3 按钮边框动画的实现
Nov 12 HTML / CSS
HTML5拖放功能_动力节点Java学院整理
Jul 13 HTML / CSS
html5中为audio标签增加停止按钮动作实现方法
Jan 04 HTML / CSS
HTML5 Canvas中绘制矩形实例
Jan 01 HTML / CSS
html5生成柱状图(条形图)效果的实例代码
Mar 25 HTML / CSS
h5使用canvas画布实现手势解锁
Jan 04 HTML / CSS
HTML中的表格元素介绍
Feb 28 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
Sep 20 #HTML / CSS
html5本地存储 localStorage操作使用详解
Sep 20 #HTML / CSS
使用Html5实现异步上传文件,支持跨域,带有上传进度条
Sep 17 #HTML / CSS
a标签下载链接的简单实现
Sep 13 #HTML / CSS
HTML5新增加的功能详解
Sep 05 #HTML / CSS
HTML5新增加标签和功能概述
Sep 05 #HTML / CSS
H5 meta小结(前端必看篇)
Aug 24 #HTML / CSS
You might like
PHP脚本的10个技巧(2)
2006/10/09 PHP
基于HTTP长连接的&quot;服务器推&quot;技术的php 简易聊天室
2009/10/31 PHP
php5 图片验证码实现代码
2009/12/11 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
Google Map Api和GOOGLE Search Api整合实现代码
2009/07/18 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
详解webpack与SPA实践之开发环境搭建
2017/12/18 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
python分割和拼接字符串
2013/11/01 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
Pyorch之numpy与torch之间相互转换方式
2019/12/31 Python
python exit出错原因整理
2020/08/31 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
如何用python开发Zeroc Ice应用
2021/01/29 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
哥伦比亚最大的网上商店:Linio哥伦比亚
2016/09/25 全球购物
英国和爱尔兰的自炊式豪华度假小屋:Rural Retreats
2018/06/08 全球购物
环境科学专业大学生自荐信格式
2013/09/21 职场文书
连锁经营管理专业大学生求职信
2013/10/30 职场文书
四查四看剖析材料
2014/02/14 职场文书
小班秋游活动方案
2014/02/22 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
高端收音机+蓝牙音箱,JBL TUNER FM带收音蓝牙音箱评测
2021/04/24 无线电
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫