基于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 相关文章推荐
关于IFRAME 自适应高度的研究
Jul 20 Javascript
比较全面的event对像在IE与FF中的区别 推荐
Sep 21 Javascript
JS 用6N±1法求素数 实例教程
Oct 20 Javascript
javascript中不提供sleep功能如何实现这个功能
May 27 Javascript
纯javascript实现四方向文本无缝滚动效果
Jun 16 Javascript
javascript过滤数组重复元素的实现方法
May 03 Javascript
基于js中的原型(全面讲解)
Sep 19 Javascript
详解vue渲染函数render的使用
Dec 12 Javascript
vue按需加载组件webpack require.ensure的方法
Dec 13 Javascript
React路由鉴权的实现方法
Sep 05 Javascript
Jquery异步上传文件代码实例
Nov 13 jQuery
全面解析Vue中的$nextTick
Dec 24 Vue.js
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
ADODB类使用
2006/11/25 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
简单谈谈JS中的正则表达式
2017/09/11 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
python中字符串内置函数的用法总结
2018/09/13 Python
python 的topk算法实例
2020/04/02 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
文明演讲稿范文
2014/05/12 职场文书
工地宣传标语
2014/06/18 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
一般纳税人申请报告
2015/05/18 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
假期读书倡议书3篇
2019/08/19 职场文书
Python中request的基本使用解决乱码问题
2022/04/12 Python