程序小屋

记录生活中的点滴,分享、学习、创新

文章内容 1623753400

图片转base64

本地读取图片转base64

<!doctype html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport"

          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Document</title>

</head>

<body>

<input type="file" id="image"><br/>

<script>

    var file = document.getElementById("image");

    file.onchange = function () {

        var reader = new FileReader();

        //上传图片最大值(单位字节)( 2 M = 2*1024*1024 = 2097152 B )超过2M上传失败

        var AllowImgFileSize = 2097152;

        //将文件以Data URL形式读入页面

        reader.readAsDataURL(file.files[0]);

        reader.onload = function (e) {

            // var imgUrlBase64 = reader.result.substring(reader.result.indexOf(",") + 1).length;//截取base64码部分

            if (reader.result.length <= AllowImgFileSize) {

                console.log(reader.result);

            } else {

                console.log('上传失败,请上传不大于2M的图片!');

            }

        };

    };

</script>

</body>

</html>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

网络图片转base64

function getBase64Image(url, width, height) {//width、height调用时传入具体像素值,控制大小 ,不传则默认图像大小

    var image = new Image();

    // 经测试,图片也需要后台设置允许跨域,才可以访问。光前端指定是无效的

    image.crossOrigin = 'Anonymous';

    image.src = url;

    return new Promise(function (resolve, reject) {

        image.onload = function () {

            var canvas = document.createElement("canvas");

            canvas.width = width ? width : image.width;

            canvas.height = height ? height : image.height;

            var ctx = canvas.getContext("2d");

            ctx.drawImage(image, 0, 0, canvas.width, canvas.height);

            var dataURL = canvas.toDataURL();

            resolve(dataURL);

        };

        image.onerror = function () {

            reject('图片加载失败');

        };

    });

}

var url = "https://pic4.zhimg.com/v2-37a81f23446cde74cc3f8053d0de86bf_r.jpg";

getBase64Image(url).then(function (response) {

    var base64 = response;

    var img = document.createElement('img');

    img.src = base64;

    document.body.appendChild(img);

    console.log(response);

},function (error) {

    console.log(error);

});


*