JS-点击图片下载到本地

小鱼儿 2022-04-10 02:16 441阅读 0赞

先使用canvas显示图片,接着使用toDataURL()方法获取图片展示的 data URI,通过在a链接设置download属于,点击将图片内容下载到本地。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  7. </head>
  8. <body>
  9. <button onclick="download()">点击下载</button>
  10. </body>
  11. <script>
  12. function download() {
  13. var image = new Image();
  14. image.crossOrigin = "anonymous";
  15. image.src = "http://is3.mzstatic.com/image/thumb/Music62/v4/4b/f6/a2/4bf6a267-5a59-be4f-6947-d803849c6a7d/source/200x200bb.jpg";
  16. var fileName = image.src.split(/(\\|\/)/g).pop();
  17. image.onload = function () {
  18. var canvas = document.createElement('canvas');
  19. canvas.width = this.naturalWidth; // or 'width' if you want a special/scaled size
  20. canvas.height = this.naturalHeight; // or 'height' if you want a special/scaled size
  21. canvas.getContext('2d').drawImage(this, 0, 0);
  22. var blob;
  23. // ... get as Data URI
  24. if (image.src.indexOf(".jpg") > -1) {
  25. blob = canvas.toDataURL("image/jpeg");
  26. } else if (image.src.indexOf(".png") > -1) {
  27. blob = canvas.toDataURL("image/png");
  28. } else if (image.src.indexOf(".gif") > -1) {
  29. blob = canvas.toDataURL("image/gif");
  30. } else {
  31. blob = canvas.toDataURL("image/png");
  32. }
  33. $("body").html("<b>点击下载图片.</b><br><a download='" + fileName + "' href='" + blob + "'><img src='" + blob + "'/></a>");
  34. };
  35. }
  36. </script>
  37. </html>

https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLCanvasElement/toDataURL

发表评论

表情:
评论列表 (有 0 条评论,441人围观)

还没有评论,来说两句吧...

相关阅读

    相关 js保存图片本地

    说明:可以实现下载图片,但是移动端浏览器不行,暂时没有实现,如果有知道的大哥留个言,让我改进一下,感谢。 操作步骤: 新建一个文件夹,将代码放入index.html,然后在文