欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

js将图片转base64的两种实现方法 有大用 有大大用

这篇文章主要给大家介绍了关于js将图片转base64的两种实现方法,Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法,需要的朋友可以参考下


第一种:Image + canvas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const getBase64Image = src => {
    return new Promise(resolve => {
        const img = new Image()
        img.crossOrigin = ''
        img.src = src
        img.onload = function () {
            const canvas = document.createElement('canvas')
            canvas.width = img.width
            canvas.height = img.height
            const ctx = canvas.getContext('2d')
            ctx?.drawImage(img, 0, 0, img.width, img.height)
            const ext = img.src.substring(img.src.lastIndexOf('.') + 1).toLowerCase()
            const dataURL = canvas.toDataURL('image/' + ext)
            resolve(dataURL)
        }
    })
}

第二种:xhr + FileReader

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const getBase64Image = src => {
    return new Promise(resolve => {
        let xhr = new XMLHttpRequest()
        xhr.open('get', src, true)
        xhr.responseType = 'blob'
        xhr.onload = function () {
            if (this.status == 200) {
                let blob = this.response
                let oFileReader = new FileReader()
                oFileReader.onloadend = function (e) {
                    const base64 = e.target.result
                    resolve(base64)
                }
                oFileReader.readAsDataURL(blob)
            }
        }
        xhr.send()
    })
}

总结

到此这篇关于js将图片转base64的两种实现方法的文章就介绍到这了,更多相关js图片转base64内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


来自  https://www.jb51.net/javascript/292901mgk.htm




普通分类: