<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
	<title>WebCat - 图片 Base64 转换与下载</title>
  </head>
  <body>	
	<img src="https://jsmov2.a.yximgs.com/ufile/atlas/NTIwMzA2NTAxNjcxMjI0NjAyNV8xNjQ5NDg3NTAzODI0_6.jpg" width="100%" id="hop"/><a href="" download="xo.jpg" id="oo">下载</a>
 <script>
      var imageUrl = "https://jsmov2.a.yximgs.com/ufile/atlas/NTIwMzA2NTAxNjcxMjI0NjAyNV8xNjQ5NDg3NTAzODI0_5.jpg";
      var img = new Image();
      img.crossOrigin = "Anonymous";
      img.onload = function() {
        var canvas = document.createElement("canvas");
        var ctx = canvas.getContext("2d");
        canvas.width = this.width;
        canvas.height = this.height;
        ctx.drawImage(this, 0, 0);
        var dataURL = canvas.toDataURL("image/jpeg");
        document.getElementById("hop").src = dataURL;
      };
      img.src = imageUrl;
      oo.href=imageUrl;
 </script>
  </body>
</html>img 的 base64 为什么加在 a 元素后变成了普通链接内容:在这段代码中,通过使用 canvas 将图片转换为 base64 格式,并将其设置为 img 元素的 src 属性,以便在页面上显示图片。
<p>而 a 元素的 href 属性是用来指定链接的地址,当设置为 base64 格式的图片时,浏览器会将其解析为普通的图片链接,以便用户可以下载该图片。</p>
<p>所以,img 的 base64 并没有变成普通链接,只是在 a 元素中设置的 href 属性被浏览器解析为普通链接。</p>
WebCat - 图片 Base64 转换与下载

原文地址: https://www.cveoy.top/t/topic/qi8X 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录