基于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 相关文章推荐
jquery Firefox3.5中操作select的问题
Jul 10 Javascript
Javascript常考语句107条收集
Mar 09 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
May 06 Javascript
基于JavaScript创建动态Dom
Dec 08 Javascript
Angularjs实现多个页面共享数据的方式
Mar 29 Javascript
jquery 动态增加删除行的简单实例(推荐)
Oct 12 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
Feb 04 Javascript
AngularJs中$cookies简单用法分析
May 30 Javascript
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
Element Card 卡片的具体使用
Jul 26 Javascript
详解Vue中Axios封装API接口的思路及方法
Oct 10 Javascript
用javascript制作qq注册动态页面
Apr 14 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
一个数据采集类
2007/02/14 PHP
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
Vue.js中对css的操作(修改)具体方式详解
2018/10/30 Javascript
Node.js 如何利用异步提升任务处理速度
2019/01/07 Javascript
微信小程序上线发布流程图文详解
2019/05/06 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
Python实现全局变量的两个解决方法
2014/07/03 Python
django 自定义用户user模型的三种方法
2014/11/18 Python
python实现单向链表详解
2018/02/08 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
python+logging+yaml实现日志分割
2019/07/22 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
自主招生自荐信格式
2013/12/03 职场文书
采购内勤岗位职责
2013/12/10 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
如何用python识别滑块验证码中的缺口
2021/04/01 Python
Python爬虫实战之爬取携程评论
2021/06/02 Python