前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTML5将图片转换成base64代码,非常实用

HTML5将图片转换成base64代码,非常实用

作者头像
程序员纬度
发布2021-03-02 11:00:45
4.3K0
发布2021-03-02 11:00:45
举报
文章被收录于专栏:奇异维度

我们为什么要把图片转换成base64代码?

介绍:

base64是一种网络上常用的8bit字节代码的编码方式,base64可以用于http环境下传递较长的标识信息,同时可以放在url当中使用,因为base64不惧可读性,所以具有一定的加密功能。 将图片转换成base64代码可以减少http请求,因为图片可以以字符编码的形式直接传递到客户端,而文件形式都需要进行http请求。但是也会有一个小缺点,就是图片编码化base64的时候大小会变大,但是通过gzip优化以后基本差不多。所以在应用的过程当中较小的图片可以直接编码成base64,较大的图片则不建议如此使用。

html5如何将图片转换成base64?

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

简单来说,就是将图片转换成一串长代码,供网页使用。(可直接替换网页图片外链)

演示页面:http://code.cozv.cn/html/3/

示例程序:

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

代码语言:javascript
复制
<!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代码

程序的设计思路

  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代码,非常实用 由 小维 发表!

转载请注明:HTML5将图片转换成base64代码,非常实用 - 小维的个人博客

部分素材来源于网络,如有侵权请联系删除!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020 年 05 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 我们为什么要把图片转换成base64代码?
  • 程序的设计思路
  • 代码解析及注意
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档