zoukankan      html  css  js  c++  java
  • 关于前端使用JavaScript获取base64图片大小的方法

    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图片的字符串。

    把图片转化成base64

    
      getBase64(file: File) {
        const reader = new FileReader();
        reader.addEventListener('load', () => {
          const base64Str = reader.result.toString();
          const base64Url = base64Str.split('base64,')[1]; //获取上传图片的base64码
        });
        reader.readAsDataURL(file);
    }
    
  • 相关阅读:
    Vue 项目刷新当前页面
    Vue 使用 vue-echarts 图表插件
    Vue 路由跳转、传参、接参四种方式
    webpack 之 proxyTable 设置跨域
    二元函数的梯度下降法求解
    2020暑期华为勇敢星实习总结
    时间序列预测算法-ARIMA算法
    航天一院介绍
    腾讯数据分析笔试
    C# Fleck的WebSocket使用
  • 原文地址:https://www.cnblogs.com/yuanchao-blog/p/11698364.html
Copyright © 2011-2022 走看看