關於前端使用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);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM