最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

html2canvas实现浏览器截图

来源:动视网 责编:小OO 时间:2020-11-27 15:26:36
文档

html2canvas实现浏览器截图

作用;html2canvas可以通过纯JS对浏览器端经行截屏,但截图的精确度还有待提高,部分css不可识别,所以在canvas中不能完美呈现原画面样式。/*多行溢出省略就不行,只能超出隐藏了*/ .book_inf{ position: relative;overflow : hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;}。支持的浏览器;Firefox 3.5+。Google Chrome。Opera 12+;IE9+;Safari 6+;基本语法;
推荐度:
导读作用;html2canvas可以通过纯JS对浏览器端经行截屏,但截图的精确度还有待提高,部分css不可识别,所以在canvas中不能完美呈现原画面样式。/*多行溢出省略就不行,只能超出隐藏了*/ .book_inf{ position: relative;overflow : hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;}。支持的浏览器;Firefox 3.5+。Google Chrome。Opera 12+;IE9+;Safari 6+;基本语法;


使用html2canvas实现浏览器截图,必须在服务器环境下才能实现。本文主要介绍了使用html2canvas实现浏览器截图的示例代码的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

作用

html2canvas可以通过纯JS对浏览器端经行截屏,但截图的精确度还有待提高,部分css不可识别,所以在canvas中不能完美呈现原画面样式

/*多行溢出省略就不行,只能超出隐藏了*/
 .book_inf{
 position: relative; 
 overflow : hidden;
 text-overflow: ellipsis;
 display: -webkit-box;
 -webkit-line-clamp: 2;
 -webkit-box-orient: vertical;
 }

支持的浏览器

  1. Firefox 3.5+

  2. Google Chrome

  3. Opera 12+

  4. IE9+

  5. Safari 6+

基本语法

/*参数:
* #screenshots 所需要截图的元素id,截图后要执行的函数,
* backgroundColor 配置项背景色
* canvas为截图后返回的最后一个canvas
*/
function screenshotsImg(){
 html2canvas(document.querySelector("#screenshots"),{
 backgroundColor: 'transparent',// 设置背景透明
 }).then(canvas => {
 canvasTurnImg(canvas) //保存的图片格式转换方法
 });
 }

可用配置项

参数名称类型默认值描述
allowTaintbooleanfalseWhether to allow cross-origin images to taint the canvas---允许跨域
backgroundstring#fffCanvas background color, if none is specified in DOM. Set undefined for transparent---canvas的背景颜色,如果没有设定默认白色此处被坑,我改为backgroundColor可用
heightnumbernullDefine the heigt of the canvas in pixels. If null, renders with full height of the window.---canvas高度设定
letterRenderingbooleanfalseWhether to render each letter seperately. Necessary if letter-spacing is used.---在设置了字间距的时候有用
loggingbooleanfalseWhether to log events in the console.---在console.log()中输出信息
proxystringundefinedUrl to the proxy which is to be used for loading cross-origin images. If left empty, cross-origin images won't be loaded.---代理地址
taintTestbooleantrueWhether to test each image if it taints the canvas before drawing them---是否在渲染前测试图片
timeoutnumber0Timeout for loading images, in milliseconds. Setting it to 0 will result in no timeout.---图片加载延迟,默认延迟为0,单位毫秒
widthnumbernullDefine the width of the canvas in pixels. If null, renders with full width of the window.---canvas宽度
useCORSbooleanfalseWhether to attempt to load cross-origin images as CORS served, before reverting back to proxy--跨域代理

设置图片格式

1、从canvas中直接提取图片元数据

 // 图片导出为 png 格式
 var type = 'png';
 var imgData = canvas.toDataURL(type);

2、将mime-type改为image/octet-stream,强制让浏览器直接download

/**
 * 获取mimeType
 * @param {String} type the old mime-type
 * @return the new mime-type
 */
var _fixType = function(type) {
 type = type.toLowerCase().replace(/jpg/i, 'jpeg');
 var r = type.match(/png|jpeg|bmp|gif/)[0];
 return 'image/' + r;
};
 
// 加工image data,替换mime type
imgData = imgData.replace(_fixType(type),'image/octet-stream');

3、图片download到本地

文档

html2canvas实现浏览器截图

作用;html2canvas可以通过纯JS对浏览器端经行截屏,但截图的精确度还有待提高,部分css不可识别,所以在canvas中不能完美呈现原画面样式。/*多行溢出省略就不行,只能超出隐藏了*/ .book_inf{ position: relative;overflow : hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;}。支持的浏览器;Firefox 3.5+。Google Chrome。Opera 12+;IE9+;Safari 6+;基本语法;
推荐度:
标签: 截图 浏览器 实现
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top