图片转二进制 base64

复制代码
        function getBase64Image(img) {
            var canvas = document.createElement("canvas");
            canvas.width = img.width;
            canvas.height = img.height;
            var ctx = canvas.getContext("2d");
            ctx.drawImage(img, 0, 0, img.width, img.height);
            var ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase();
            var dataURL = canvas.toDataURL("image/" + ext);
            console.log(dataURL, JSON.stringify(dataURL))
            return dataURL;
        }
        /**
        *Base64字符串转⼆进制
        */

        function dataURLtoBlob(dataurl) {
            var arr = dataurl.split(','),
                mime = arr[0].match(/:(.*?);/)[1],
                bstr = atob(arr[1]),
                n = bstr.length,
                u8arr = new Uint8Array(n);
            while (n--) {
                u8arr[n] = bstr.charCodeAt(n);
            }
            return new Blob([u8arr], {
                type: mime
            });
        }
        var img = './image/ispacehome.png';
        var image = new Image();
        image.src = img;
        image.onload = function () {
            //这样就获取到了⽂件的Base64字符串
            var base64 = getBase64Image(image);
            console.log(base64)
            // document.getElementById('testImg').src = base64
            //Base64字符串转⼆进制
            var file = dataURLtoBlob(base64);
            console.log(file)
        }
复制代码

 

posted @   玖捌  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示