在前端開(kāi)發(fā)中,圖片轉(zhuǎn)換成base64格式是常見(jiàn)的操作,它可以讓我們?cè)诓皇褂梅?wù)器的情況下將圖片嵌入到網(wǎng)頁(yè)中,從而減少了請(qǐng)求次數(shù),加快了加載速度。本文將介紹使用JavaScript將圖片轉(zhuǎn)換成base64格式的方法,并且通過(guò)幾個(gè)例子來(lái)詳細(xì)講解。
首先,我們需要了解一下base64編碼的原理。base64是一種用64個(gè)字符來(lái)表示任意二進(jìn)制數(shù)據(jù)的編碼方式。具體來(lái)說(shuō),它將3個(gè)8位的字節(jié)編碼為4個(gè)6位的字節(jié),所以編碼后的數(shù)據(jù)會(huì)比原數(shù)據(jù)稍微大一些。舉個(gè)例子,如果我們將10個(gè)字節(jié)的數(shù)據(jù)轉(zhuǎn)換成base64編碼,最終會(huì)變成16個(gè)字符的文本,這里我們使用window.btoa()方法來(lái)實(shí)現(xiàn)。以下是代碼示例:
let data = "This is a test."; let base64 = window.btoa(data); console.log(base64); // VGhpcyBpcyBhIHRlc3Qu上面的代碼中,我們將字符串“This is a test.”轉(zhuǎn)換成了base64編碼,并且通過(guò)控制臺(tái)輸出了編碼后的結(jié)果。當(dāng)我們需要將圖片轉(zhuǎn)換成base64格式時(shí),可以使用標(biāo)簽來(lái)實(shí)現(xiàn)。下面是代碼示例:
let img = document.querySelector("img"); let canvas = document.createElement("canvas"); let ctx = canvas.getContext("2d"); canvas.width = img.width; canvas.height = img.height; ctx.drawImage(img, 0, 0, img.width, img.height); let base64 = canvas.toDataURL(); console.log(base64);以上代碼中,我們首先獲取了一個(gè)標(biāo)簽,并創(chuàng)建了一個(gè)