基于JavaScript获取base64图片大小


Posted in Javascript onOctober 18, 2019

base64原理

Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='

如何获取base64图片大小

通过base64编码原理我们知道,base64的图片字符流中的每8个字符就有两个是用0补充,而且字符流的末尾还可能存在‘='号,我们可以通过这个原理计算图片的文件流大小。

getImgByteSize(data) {
  if (data.graphicContents) { // 获取base64图片byte大小
   const equalIndex = data.graphicContents.indexOf('='); // 获取=号下标
   if (equalIndex > 0) {
    const str = data.graphicContents.substring(0, equalIndex); // 去除=号
    const strLength = str.length;
    const fileLength = strLength - (strLength / 8) * 2; // 真实的图片byte大小
    data.size = Math.floor(fileLength); // 向下取整
   } else {
    const strLength = data.graphicContents.length;
    const fileLength = strLength - (strLength / 8) * 2;
    data.size = Math.floor(fileLength); // 向下取整
   }
  } else {
   data.size = null;
  }
 }

data.graphicContents是后端获取的base64图片的字符串。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
WEB高性能开发之疯狂的HTML压缩
Jun 19 Javascript
jQuery 源码分析笔记(2) 变量列表
May 28 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
Oct 16 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
May 09 Javascript
详解JavaScript中的自定义事件编写
May 10 Javascript
jQuery简单实现tab选项卡切换效果
Jun 20 Javascript
jQuery实现页面顶部下拉广告
Dec 30 Javascript
详解node单线程实现高并发原理与node异步I/O
Sep 21 Javascript
vue做网页开场视频的实例代码
Oct 20 Javascript
浅析js实现网页截图的两种方式
Nov 01 Javascript
Element-UI+Vue模式使用总结
Jan 02 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
Mar 10 Javascript
react MPA 多页配置详解
Oct 18 #Javascript
vue滚动插件better-scroll使用详解
Oct 18 #Javascript
VUE实现密码验证与提示功能
Oct 18 #Javascript
VUE实现图片验证码功能
Nov 18 #Javascript
countUp.js实现数字滚动效果
Oct 18 #Javascript
Vue-cli3项目引入Typescript的实现方法
Oct 18 #Javascript
细述Javascript的加法运算符的具体使用
Oct 18 #Javascript
You might like
如何使用动态共享对象的模式来安装PHP
2006/10/09 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
javascript实现动态表头及表列的展现方法
2015/07/14 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
Python使用百度api做人脸对比的方法
2019/08/28 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
物流专业毕业生推荐信范文
2013/11/18 职场文书
品酒会策划方案
2014/05/26 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
小学生学习保证书
2015/02/26 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
周一问候语大全
2015/11/10 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android
Java基础——Map集合
2022/04/01 Java/Android