通常獲取圖片的base64編碼都是通過input的上傳file屬性獲取轉化,但是有時候需要的是本地圖片不經過上傳操作,直接拿本地圖片轉成base64編碼就不行了,input上傳操作需要人為操作一下,沒有認為操作拿到的只是圖片路徑,現在可以通過canvas的toDataURL屬性來將本地圖片直接轉換成base64編碼形式,如下方法直接可以用:
changeBase64(url) {
var imgSrc = url; // 圖片本地路勁
var image = new Image()
image.src = imgSrc
image.onload = () => {
var canvas = document.createElement("canvas")
canvas.width = image.width
canvas.height = image.height
var ctx = canvas.getContext("2d")
ctx.drawImage(image, 0, 0, image.width, image.height)
var ext = image.src.substring(image.src.lastIndexOf(".") + 1).toLowerCase()
var dataUrl = canvas.toDataURL("image/" + ext)
var base64 = JSON.parse(JSON.stringify(dataUrl)) // 這里就是轉化成的編碼
}
}