时间:2021-05-08
最近项目中需要实现一个下载图片的功能(如下图)
一开始考虑使用a标签的download属性进行下载:
<a href="图片src" download="下载海报">下载海报</a>但是通过测试,发现再safari中,下载的文件不能带上拓展名,所以只好换一个思路,使用canvas进行处理。
1.图片需要添加crossOrigin='anonymous'设置图像的跨域属性
img.crossOrigin = 'anonymous';2.使用toDataURL把图片转换成base64格式
canvas.toDataURL("image/png")3.使用模拟点击事件,触发下载
var save_link = document.createElement('a'); save_link.href = image; save_link.download ='测试.png'; var clickevent = document.createEvent('MouseEvents'); clickevent.initEvent('click', true, false); save_link.dispatchEvent(clickevent);完整代码:
var canvas = $('.canvas');var cxt = canvas[0].getContext("2d");function save(){ var img = new Image(); img.crossOrigin = 'anonymous'; img.onload = function(){ var _w = img.naturalWidth; var _h = img.naturalHeight; canvas.attr({width:_w,height:_h}); cxt.drawImage(img,0,0); var image = canvas[0].toDataURL("image/png") var save_link = document.createElement('a'); save_link.href = image; save_link.download ='测试.png'; var clickevent = document.createEvent('MouseEvents'); clickevent.initEvent('click', true, false); save_link.dispatchEvent(clickevent); }; img.src = 'http://n.sinaimg.cn/sports/transform/20170825/NZI3- fykiufe6650492.jpg';}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用HTML5制作时钟复制代码代码如下:html5时钟varClock=function(canvas,options){this.canvas=canvas;
示例简单,运行地址为:http://chendd.cn/demo/html/canvas/elsfk.html,得需要支持html5浏览器的环境。实现的功能:方
示例使用HTML5的canvas标签和Javascript脚本,简单的编写了装载图片效果,请使用支持HTML5的浏览器预览效果:下图为以逐渐横向栅格的效果图ht
drawBgLine.html复制代码代码如下:html5画渐变背景图片,并自动下载//第一步:获取canvas对象varc=document.getEleme
使用Html5的时候,在Canvas上绘制的东西是不能相应鼠标事件的,但是使用jTopo添加事件非常简单,效果如下:代码示例:复制代码代码如下:varnode=