基于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实现密码强度显示
Mar 18 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
Apr 12 Javascript
JavaScript入门基础
Aug 12 Javascript
JavaScript学习笔记之DOM基础 2.4
Aug 14 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
Oct 04 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
Jun 13 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
javascript观察者模式实现自动刷新效果
Sep 05 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
Aug 28 Javascript
Vuex 使用及简单实例(计数器)
Aug 29 Javascript
vue中destroyed方法的使用说明
Jul 21 Javascript
vue 实现element-ui中的加载中状态
Nov 11 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
yii添删改查实例
2015/11/16 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
网上抓的一个特效
2007/05/11 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
vue2.0实现前端星星评分功能组件实例代码
2018/02/12 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Python中的默认参数详解
2015/06/24 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
C++面试题目
2013/06/25 面试题
SQL语言面试题
2013/08/27 面试题
酒店管理专业毕业生推荐信
2013/11/10 职场文书
《长征》教学反思
2014/04/27 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
员工辞职信怎么写
2015/02/27 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python
如何理解PHP核心特性命名空间
2021/05/28 PHP
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang