如何用js实现图片下载???

需求场景:点击图标,实现图片下载。

html代码:
js函数:

downLoadImg(imgsrc, name) {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",0.7); //得到图片的base64编码数据var a = document.createElement("a"); // 生成一个a元素var event = new MouseEvent("click"); // 创建一个单击事件a.download = name?name+'.png':"photo.png"; // 设置图片名称a.href = url; // 将生成的URL设置为a.href属性a.dispatchEvent(event); // 触发a的单击事件};image.src = imgsrc;
},

坑:
这里是使用canvas生成base64码进行图片下载,因为直接使用a标签进行图片下载,会有一个跨域问题,图片域名需要和我们的网站域名保持一致,如果不一致的话,则无法下载成功。但是使用canvas生成base64码进行下载时,会有一个问题,当a标签的download属性过长(传入的name过长)会导致图片下载失败,所以我们需要需要写成a.download = name + “.png”,来告诉我们的浏览器所下载的是什么格式的文件。

如何用js实现图片下载相关推荐

  1. JS将图片转化为base64编码,并实现点击下载,js实现图片下载的实操博客

    背景需求 在前端的工作中,经常碰到点击下载图片的需求,但是有一种情况大家经常碰到,就是点击下载地址之后,在浏览器窗口默认打开了,并没有调用浏览器进行下载 如果你正在完善这个需求,一直解决不了,恭喜你看 ...

  2. 如何用js实现图片切换的同时,文字也同时切换

    如何用js实现图片切换的同时,文字也同时切换? 图片切换的实现我会 代码如下: <!doctype html> <html> <head> <meta cha ...

  3. Node.js制作图片下载爬虫的一般步骤

    图片下载爬虫分两部分:爬页面和下载图片. 爬页面时先看网址是https还是http的,然后选择不同的内置对象:其次看编码,如果是charset=gb2312的网页就需要iconv帮忙转码,好在大部分都 ...

  4. html如何控制图片自动放缩,如何用js控制图片放大缩小

    js控制图片放大缩小的效果,可以通过JavaScript的width和height属性来实现.其属性可以实现按比例放大和缩小图像尺寸的功能. 在前面的文章中,也为大家介绍了JS获取图片当前宽高和JS获 ...

  5. js实现图片下载(二维码)

    今天遇到个二维码下载问题,下载下来的二维码扫描后失效,记录一下: 解决办法就是把src换成绝对路径 图片下载(二维码) 方法一: function getImageDataURL(downloadNa ...

  6. 如何用js给图片重置宽_如何用js给老婆每天发情话

    作者: 加百利真胖 原文:https://juejin.cn/events/all 一.引言 最近家里添了小孩,在家带娃陪产了一些天,深刻体会到老婆带孩子的辛苦. 工作的时候不能在家陪她,就想着写个程 ...

  7. JS实现图片下载功能

    download (config) {const a = document.createElement('a') // 创建一个a标签a.href = config.src // a标签的src属性赋 ...

  8. JS实现图片下载的数种方法

    一.js-table2excel npm install js-table2excel import table2excel from 'js-table2excel'const column = [ ...

  9. js实现图片虚化_Web前端之高斯模糊图片记

    题记 前端需求之高斯模糊图片 最近工作中有一个需求,客户提交图片,服务器根据图片生成内容,并将内容显示,要求高斯模糊处理用户的图片并作为作品展示的背景,类似于苹果设备上的高斯模糊背景.用户提交的图片分 ...

最新文章

  1. 学习UI设计的一些小技巧你会了吗
  2. ie浏览器中 overflow:hidden无作用的解决方案
  3. 没有与这些操作数【】匹配的运算符_[02]java数据类型和运算符等知识
  4. 在.NET Core中三种实现“可插拔”AOP编程方式(附源码)
  5. Android存储系统之架构篇
  6. 之江杯2020零样本目标分割题参赛总结
  7. Java黑皮书课后题第3章:**3.23(几何:点是否在矩形内)编写程序,提示用户输入点(x,y),然后检测该点是否在以原点为中心、宽为10、高为5的矩形中
  8. 如何提高安卓代码的质量和语法
  9. 笔记本wifi做热点 android通过热点上网
  10. 用NVAPI获取GPU信息
  11. 【工具】(转)PowerDesigner最基础的使用方法入门学习
  12. sap 双计量单位_SAP双计量单位配置指南CUNI.doc
  13. python 翻译代码_python写的翻译代码
  14. hrbust/哈理工oj 2220 强迫症【思维】
  15. 单例模式--懒汉模式和饿汉模式
  16. html 弹出框显示到最顶层,layer弹出层显示在top顶层的方法
  17. 怎样解决Mac电脑键盘上的大写锁定键灯不亮?
  18. 永磁同步电机矢量控制(二)—— 控制原理与坐标变换推导
  19. 快不快乐用计算机,快乐学计算机
  20. 使用busybox制作rootfs

热门文章

  1. 架构师评价当前软件行业现状及发展前景
  2. IC卡读卡器卡号输出格式
  3. 计算机机房管理系统范文,计算机机房管理系统探讨论文
  4. ZUCC_BB平台-Quiz B-3-7-答案
  5. 全球与中国高尔夫旅游市场现状及未来发展趋势
  6. 关于时间time_t和tm的介绍(很详细)
  7. H3C云AP瘦转胖fit转fat超详细图文攻略
  8. geni与ancestry分析
  9. python 循环控制语句结束_孤荷凌寒自学python第十五天python循环控制语句
  10. Android ION 内存管理