基于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 相关文章推荐
javascript编程起步(第六课)
Jan 10 Javascript
javascript字符串拼接的效率问题
Dec 25 Javascript
JavaScript异步调用定时方法并停止该方法实现代码
Mar 16 Javascript
input禁止键盘及中文输入,但可以点击
Feb 13 Javascript
JavaScript实现基于十进制的四舍五入实例
Jul 17 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
Jun 03 Javascript
JS 实现可停顿的垂直滚动实例代码
Nov 23 Javascript
浅析JavaScript中break、continue和return的区别
Nov 30 Javascript
node中的session的具体使用
Sep 14 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
Sep 06 Javascript
在vue中created、mounted等方法使用小结
Jul 21 Javascript
JavaScript 数组去重详解
Sep 15 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
Sony CFR 320 修复改造
2020/03/14 无线电
PHP $_FILES函数详解
2011/03/09 PHP
php程序内部post数据的方法
2015/03/31 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
JS 面向对象的5钟写法
2009/07/31 Javascript
学习ExtJS table布局
2009/10/08 Javascript
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
[57:50]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第二局
2016/03/05 DOTA
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
python批量生成本地ip地址的方法
2015/03/23 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
python 提取文件指定列的方法示例
2019/08/07 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
五种Python转义表示法
2020/11/27 Python
python实现xml转json文件的示例代码
2020/12/30 Python
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
linux面试题参考答案(8)
2015/08/11 面试题
垃圾回收的优点和原理
2014/05/16 面试题
劳资员岗位职责
2013/11/11 职场文书
大学生毕业自我评价范文分享
2013/11/11 职场文书
机关财务管理制度
2014/01/17 职场文书