基于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 美元符冲突的解决方法
Mar 28 Javascript
js动态添加事件并可传参数示例代码
Oct 21 Javascript
express的中间件basicAuth详解
Dec 04 Javascript
jQuery中removeClass()方法用法实例
Jan 05 Javascript
JS的数组迭代方法
Feb 05 Javascript
jQuery实现动态添加和删除一个div
Aug 12 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
Jan 04 Javascript
JavaScript计算器网页版实现代码分享
Jul 15 Javascript
JavaScript实现多栏目切换效果
Dec 12 Javascript
Vue实例简单方法介绍
Jan 20 Javascript
js代码规范之Eslint安装与配置详解
Sep 08 Javascript
浅谈vuex的基本用法和mapaction传值问题
Nov 08 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
DC动漫人物排行
2020/03/03 欧美动漫
PHP syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
收集的二十一个实用便利的PHP函数代码
2010/04/22 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
javascript脚本调试方法小结
2008/11/24 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
jquery无刷新验证邮箱地址实现实例
2014/02/19 Javascript
JavaScript中的原型链prototype介绍
2014/12/30 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
浅谈scrapy 的基本命令介绍
2017/06/13 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
Python3开发环境搭建详细教程
2020/06/18 Python
python中的yield from语法快速学习
2020/11/06 Python
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
创意爱尔兰礼物:Creative Irish Gifts
2020/01/29 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
入党自我鉴定范文
2013/10/04 职场文书
QA工程师岗位职责
2013/11/20 职场文书
高级电工工作职责
2013/11/21 职场文书
优秀毕业生求职信范文
2014/01/02 职场文书
人力资源主管职责范本
2014/03/05 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
个人评语大全
2014/05/04 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书