js-base64

base64

https://juejin.cn/post/6844903698045370376
https://juejin.cn/search?query=base64

前端图片处理方式

https://juejin.cn/post/6844903782959022093
https://www.jb51.net/article/138809.htm

base64 下载格式为base64的图片

https://zhuanlan.zhihu.com/p/28176700
https://www.cnblogs.com/anxiaoyu/p/10958722.html

js图片下载功能

https://juejin.cn/search?query=js图片下载&sort=2
https://juejin.cn/post/6844904094398677000
https://juejin.cn/post/6844903699496566792

图片转base64-实例1

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>js 图片转base64方式</title>
</head>

<body>
  <script>
    var url = 'https://z649319834.github.io/Learn_Example/video_track/webvtt.jpg'
    var url = 'http://e.hiphotos.baidu.com/image/pic/item/1c950a7b02087bf49661186dffd3572c10dfcfa1.jpg'
    var url = 'http://p1.pstatp.com/large/435d000085555bd8de10'


    function getImageBase64(image) {
      var canvas = document.createElement("canvas");
      canvas.width = image.width;
      canvas.height = image.height;
      const context = canvas.getContext("2d");
      context.drawImage(image, 0, 0, image.width, image.height);
      var ext = image.src.substring(image.src.lastIndexOf(".") + 1).toLowerCase();
      var dataURL = canvas.toDataURL("image/" + ext);
      return dataURL;
    }

    function imgUrl(url) {
      const image = new Image();
      image.src = url;
      image.setAttribute("crossOrigin", "anonymous");
      image.onload = function () {
        var base64 = getImageBase64(image);
        console.log('base64: ', base64);
      }
    }
    imgUrl(url)
  </script>
</body>

</html>

图片转base64-实例2

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>js 图片转base64方式</title>
</head>

<body>
  <p id="container1"></p>
  <script>
    var url = 'https://z649319834.github.io/Learn_Example/video_track/webvtt.jpg'
    var url = 'http://e.hiphotos.baidu.com/image/pic/item/1c950a7b02087bf49661186dffd3572c10dfcfa1.jpg'
    var url = 'http://p1.pstatp.com/large/435d000085555bd8de10'

    function getBase64(imgUrl) {
      window.URL = window.URL || window.webkitURL;
      var xhr = new XMLHttpRequest();
      xhr.open("get", imgUrl, true);
      // 至关重要
      xhr.responseType = "blob";
      xhr.onload = function () {
        if (this.status == 200) {
          //得到一个blob对象
          var blob = this.response;
          console.log("blob", blob)
          // 至关重要
          let oFileReader = new FileReader();
          oFileReader.onloadend = function (e) {
            let base64 = e.target.result;
            console.log("方式一>>>>>>>>>>>>>>>>>>>>>>>>>>>", base64)
          };
          oFileReader.readAsDataURL(blob);
          //====为了在页面显示图片,可以删除====
          var img = document.createElement("img");
          img.onload = function (e) {
            window.URL.revokeObjectURL(img.src); // 清除释放
          };
          let src = window.URL.createObjectURL(blob);
          img.src = src
          document.getElementById("container1").appendChild(img);
          //====为了在页面显示图片,可以删除====

        }
      }
      xhr.send();
    }
    getBase64(url)
  </script>
</body>

</html>

图片下载功能实例

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <a href="http://e.hiphotos.baidu.com/image/pic/item/1c950a7b02087bf49661186dffd3572c10dfcfa1.jpg" download>下载</a>
  <a href="http://118.117.161.203:8038/camerafile/0516/20210531/20210531_092442_0516_20210531_092442.jpg"
    download>下载</a>
  <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
  <script>
    var imgUrl = 'http://e.hiphotos.baidu.com/image/pic/item/1c950a7b02087bf49661186dffd3572c10dfcfa1.jpg'
    var imgUrl2 = 'http://118.117.161.203:8038/camerafile/0516/20210531/20210531_092442_0516_20210531_092442.jpg'


    let script = document.createElement('script');

    script.src = 'http://118.117.161.203:8038?&callback=callback';

    document.body.appendChild(script);

    function callback(res) {
      console.log(res);
    }


    function imgToBase64(imgSrc, imgName) {

      var image = new Image()

      // 解决跨域 Canvas 污染问题

      image.setAttribute('crossOrigin', 'anonymous')

      image.onload = function () {

        var canvas = document.createElement('canvas')

        canvas.width = image.width

        canvas.height = image.height

        var context = canvas.getContext('2d')

        context.drawImage(image, 0, 0, image.width, image.height)

        var url = canvas.toDataURL('image/png')

        // 生成一个a元素

        var a = document.createElement('a')

        // 创建一个单击事件

        var event = new MouseEvent('click')

        // 将a的download属性设置为我们想要下载的图片名称,若name不存在则使用‘下载图片名称’作为默认名称

        a.download = imgName || '下载图片名称'

        // 将生成的URL设置为a.href属性

        a.href = url

        // 触发a的单击事件

        a.dispatchEvent(event)

      }

      image.src = imgSrc;

    }
    imgToBase64(imgUrl2, 2)
  </script>
</body>

</html>
posted @ 2021-06-01 16:45  有风吹过的地方丨  阅读(568)  评论(0编辑  收藏  举报