头像加个小图标是如何制作的?
AI掘金师up
2021年10月05日 17:21

<!DOCTYPE html>

<html>

  <head>

    <meta charset="UTF-8&#​34; />

    <meta http-equiv="X-UA-Compatible&#​34; content="IE=edge&#​34; />

    <meta name="viewport&#​34; content="width=device-width, initial-scale=1.0" />

    <title>click函数的使用</title>

  </head>

  <body>

    <button onclick="dj()&#​34; id="anniu&#​34;>上传图片</button>

    <button id="bctp&#​34; onclick="bctp()&#​34;>保存图片</button>

    <canvas style="display: none&#​34;></canvas>

    <img id="preview&#​34; src="&#​34; alt="&#​34; />

    <!-- 从这里看出可以是windows触发的 -->

    <input

      type="file&#​34;

      onchange="loadImageFile()&#​34;

      id="upload&#​34;

      style="visibility: hidden&#​34;

    />

    <div id="uploadBox&#​34;></div>

    <script>

      function dj() {

        // console.log("nihaoshijie&#​34;);

        // document.getElementById("haha&#​34;).click();

        // 可能这是一个动作所以输出的是未定义

        // console.log(document.getElementById("haha&#​34;).click());

        filenamedz = document.getElementById("upload&#​34;).click(); //也有可能是它触发的

        filename = document.getElementById("upload&#​34;);

        console.log(filename);

      }

      function loadImageFile() {

        console.log(this); //确实是windows,以后不知道是就输出一下

        //这里的this应该是指向的是那个按钮,假如我这里写this指的是windows调用

        var file = filename.files;

        console.log(file);

        var reader = new FileReader();

        reader.readAsDataURL(file[0]);

        reader.onload = function () {

          draw(reader.result);

        };

      }

      var draw = function (src) {

        var base64 = [];

        var c = document.querySelector("canvas&#​34;);

        var ctx = c.getContext("2d&#​34;);

        ctx.fillStyle = "#​fff";

        c.width = 290;

        c.height = 290;

        ctx.rect(0, 0, c.width, c.height);

        ctx.fill();

        // 画底图,这个底图就是图像

        var img = new Image();

        img.src = src;

        img.onload = function () {

          ctx.drawImage(img, 0, 0, 290, 290);

          // 画红旗

          var icon = new Image();

          icon.src = "icon.png&#​34;;

          icon.onload = function () {

            ctx.drawImage(icon, 0, 0, 290, 290);

            document.querySelector("#​preview").src = c.toDataURL(

              "image/jpeg&#​34;,

              0.8

            );

            //读完以后赋值给图片的src,就是这么简单

            //   document.getElementById("uploadBox&#​34;).innerHTML +=

            //     "<div id=&#​39;uploadImg'><img src=&#​39;" +

            //     draw(reader.result) +

            //     "&#​39; style='height:200px&#​39;></div>";

          };

        };

      };

      function haha() {

        console.log("lj&#​34;);

      }

    </script>

  </body>

</html>

<!DOCTYPE html>

<html>

  <head>

    <meta charset="UTF-8&#​34; />

    <meta http-equiv="X-UA-Compatible&#​34; content="IE=edge&#​34; />

    <meta name="viewport&#​34; content="width=device-width, initial-scale=1.0" />

    <title>Document</title>

    <style>

      canvas {

        background-color: yellow;

      }

      img {

        width: 100px;

      }

    </style>

  </head>

  <body>

    <!-- <img src="icon.png&#​34; alt="&#​34; id="gq_icon&#​34; /> -->

    <img src="icon.png&#​34; alt="&#​34; id="gq_icon2&#​34; />

    <img src="preview.png&#​34; alt="&#​34; id="gq_icon&#​34; />

    <canvas id="canvas&#​34; width="200&#​34; height="200&#​34;></canvas>

    <script>

      var canvas = document.getElementById("canvas&#​34;);

      var ctx = canvas.getContext("2d&#​34;);

      //   var img = document.getElementById("gq_icon&#​34;);

      var img2 = document.getElementById("gq_icon2&#​34;);

      var img = document.getElementById("gq_icon&#​34;);

      //   把图片加载到画布里面;

      img.onload = function () {

        console.log("haha&#​34;);

        // ctx.drawImage(img, 0, 0, 100, 100);

        ctx.drawImage(img, 0, 0, 200, 200);

        ctx.drawImage(img2, 0, 0, 100, 100);

        // console.log(ctx.drawImage(img, 0, 0, 100, 100));

      };

      var dataURL = canvas.toDataURL();

      console.log(dataURL);

    </script>

  </body>

</html>