html2canvas下载图片,html2canvas.js
使用html2canvas实现浏览器截图,必须在服务器环境下才能实现。
作用
html2canvas可以通过纯射流研究…对浏览器端经行截屏,但截图的精确度还有待提高,部分钢性铸铁不可识别,所以在帆布中不能完美呈现原画面样式
/*多行溢出省略就不行,只能超出隐藏了*/.book_inf{ position:相对;溢出:隐藏;文本溢出:省略号;显示:-WebKit-box;-WebKit-line-clamp:2;-webkit-box-orient:垂直;}支持的浏览器
火狐3.5谷歌chrome Opera 12 IE9 Safari 6基本语法
/*参数:* #截图所需要截图的元素id,截图后要执行的函数,*背景色配置项背景色*画布为截图后返回的最后一个canvas */function screenshotsImg(){ html 2 canvas(document。查询选择器( # screens ),{ backgroundColor: transparent ,//设置背景透明}).然后(canvas={ canvasTurnImg(canvas)//保存的图片格式转换方法});}可用配置项
参数名称类型默认值描述是否允许跨原点图像污染画布-允许跨域背景字符串#fff画布背景色,如果数字正射影像图中没有指定。为透明画布设置未定义的背景颜色,如果没有设定默认白色此处被坑,我改为背景颜色可用以像素为单位定义画布的高度。如果为空,则以窗口的全高呈现。-帆布高度设定字母渲染布尔值false是否单独呈现每个字母。如果使用字母间距,这是必要的。-在设置了字间距的时候有用是否在控制台中记录事件。-在console.log()中输出信息代理字符串用于加载跨原点图像的代理的未定义Url .如果留空,将不会加载跨原点图像。-代理地址是否在绘制图像之前测试每幅图像是否污染了画布是否在渲染前测试图片超时数字0加载图像的超时,以毫秒为单位。将其设置为0将不会导致超时。-图片加载延迟,默认延迟为0,单位毫秒以像素为单位定义画布的宽度。如果为空,则以窗口的全宽呈现。-帆布宽度useCORS布尔值false在恢复到代理之前,是否尝试加载克-奥二氏分级量表提供的跨原点图像-跨域代理
设置图片格式
1、从帆布中直接提取图片元数据
//图片导出为png格式var type= pngvar img data=canvas。toda taurl(类型);2、将哑剧类型改为图像/八位流,强制让浏览器直接下载
/** * 获取mimeType * @param {String}类型旧的mime-type * @return新的mime-type */var _ fix type=function(type){ type=type。tolowercase().替换(/jpg/i, JPEG );var r=类型。match(/png JPEG BMP gif/)[0];return image/ r;};//加工图像数据,替换mime类型img数据=img数据。替换(_ fixType(type), image/octet-stream );3、图片下载到本地
/** * 在本地进行文件保存* @param {String}数据要保存到本地的图片数据* @param {String}文件名文件名*/var saveFile=function(数据,文件名){ var save _ link=文档。createelementns( http://www。w3。org/1999/XHTML , a );save _ link . href=data save _ link . download=file name var event=document。创建事件(“鼠标事件”);event.initMouseEvent(click ,true,false,window,0,0,0,0,0,false,false,false,false,false,false,0,null);save_link.dispatchEvent(事件);};//下载后的文件名var filename=baidufe_ (新日期())。getTime() . 类型;//downloadsaveFile(imgData,filename);案例
案例
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。