码迷,mamicode.com
首页 > 编程语言 > 详细

关于前端使用JavaScript获取base64图片大小的方法

时间:2019-10-18 15:33:07      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:pre   因此   字符串   base   下标   icc   ons   else   如何获取   

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获取base64图片大小的方法

标签:pre   因此   字符串   base   下标   icc   ons   else   如何获取   

原文地址:https://www.cnblogs.com/yuanchao-blog/p/11698364.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!