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来绘制一个月食图案
Jul 18 HTML / CSS
详解CSS3中使用gradient实现渐变效果的方法
Aug 18 HTML / CSS
css3新单位vw、vh的使用教程
Mar 23 HTML / CSS
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
Jan 17 HTML / CSS
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
Apr 10 HTML / CSS
在html5的Canvas上绘制椭圆的几种方法总结
Jan 07 HTML / CSS
使用canvas一步步实现图片打码功能的方法
Jun 17 HTML / CSS
Html5自定义字体解决方法
Oct 09 HTML / CSS
基于HTML5+tracking.js实现刷脸支付功能
Apr 16 HTML / CSS
html5 拖拽及用 js 实现拖拽功能的示例代码
Oct 23 HTML / CSS
CSS实现章节添加自增序号的方法
Jun 23 HTML / CSS
table不让td文字溢出操作方法
Dec 24 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 MySQL与分页效率
2008/06/04 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
php不用正则验证真假身份证
2013/11/06 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
jQuery对象[0]是什么含义?
2010/07/31 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
基于jquery实现的省市区级联无ajax
2013/09/24 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
Python调用C语言的实现
2019/07/26 Python
python随机模块random使用方法详解
2020/02/14 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
Python自动化测试中yaml文件读取操作
2020/08/20 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
Servlet的生命周期
2013/08/25 面试题
护理专业毕业生自我鉴定
2013/10/08 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书