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 2D图片转动样式可以扩充到Js当中
Apr 29 HTML / CSS
CSS3实现3D翻书效果
Jun 20 HTML / CSS
HTML+CSS3+JS 实现的下拉菜单
Nov 25 HTML / CSS
Html5页面在微信端的分享的实现方法
Aug 30 HTML / CSS
html5教程调用绘图api画简单的圆形代码分享
Dec 04 HTML / CSS
mui几种页面跳转方式对比总结概括
Aug 18 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
Jun 12 HTML / CSS
html5 figure和figcaption的使用方法
Sep 10 HTML / CSS
HTML里显示pdf、word、xls、ppt的方法示例
Apr 14 HTML / CSS
HTML5基于flash实现播放RTMP协议视频的示例代码
Dec 04 HTML / CSS
六种css3实现的边框过渡效果
Apr 22 HTML / CSS
使用CSS3实现按钮悬停闪烁动态特效代码
Aug 30 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 simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
php二维码生成
2015/10/19 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
python实现的自动发送消息功能详解
2019/08/15 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
如何清空python的变量
2020/07/05 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
css3绘制百度的小度熊
2018/10/29 HTML / CSS
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
聚美优品恶搞广告词
2014/03/14 职场文书
节水标语大全
2014/06/11 职场文书
财务科长个人对照检查材料
2014/09/18 职场文书
三方合作意向书范本
2015/05/09 职场文书
微信小程序实现轮播图指示器
2022/06/25 Javascript