html2canvas截图工具初体验

html2canvas 能够实现在用户浏览器端直接对整个或部分页面进行截屏,html2canvas脚本将当页面渲染成一个Canvas图片它不需要来自服务器任何渲染,整张图片都是在客户端浏览器创建。

html2canvas 截图原理
它不做实际的屏幕截图,而是基于DOM节点的截图,根据获取DOM的样式表来渲染页面,部分css样式不起作用,对于生成的图片来说,不能100%准确

// 要截图的DOM
 <div id="sharePic">
   <img :src="xxx.png"/>
   <p>这是分享的内容</p>
 </div>

 methods: {
      getSharePic () {
        let _this = this
        
        // 要绘制图片的DIV
        let shareBox = document.getElementById('sharePic')
        
        // 返回元素的宽度(包括元素宽度、内边距和边框,不包括外边距)
        let width = shareBox.offsetWidth
        
        // 返回元素的高度(包括元素高度、内边距和边框,不包括外边距)
        let height = shareBox.offsetHeight
        
        // 返回元素的上外缘距离最近采用定位父元素内壁的距离
        let offsetTop = shareBox.offsetTop
        
        // 创建canvas画布
        let canvas = document.createElement('canvas')
        
        // 指定绘图类型为二维绘图,未来如果支持3D绘图,就可以传递3d参数
        let context = canvas.getContext("2d")
        
        // 返回当前显示设备的物理像素分辨率与css像素分辨率的比率,可理解为像素大小比率
        let scaleBy = Math.ceil(window.devicePixelRatio)
        
        // 定义画布的宽度
        canvas.width = width * scaleBy
        
        // 定义画布的高度
        canvas.height = (height + offsetTop) * scaleBy
        
        let params = {
         useCORS: true, // 允许加载跨域的图片
         tainttest: true, // 检测每张图片都已经加载完成
         scale: scaleBy, // 添加的scale 参数
         canvas: canvas, // 自定义 canvas
         logging: false, // 日志开关,发布的时候记得改成false
         width: width,  // DOM 原始宽度
         height: height // DOM 原始高度
        }
        
        html2canvas(shareBox, params).then(function(canvas) {
          // 获取到图片的url
         let url = canvas.toDataURL()
        })
      }
    }

案例:
DOM 结构页面

html2canvas 生成图  ( 弹窗内 ) url 形式base64格式呈现

注意点:
1.不能渲染出动画的节点,否则生成的图片是破裂的
2.需要开启useCORS配置项,否则微信图片等外部图片会加载不出来
3.html2canvas 截图精度不高,部分css属性不起作用,不能完美呈现原画面样式

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HTML5 Canvas 是一种用于在网页上绘制图形的技术。它允许开发者通过 JavaScript 脚本来创建二维和三维图形,实现交互式图表、游戏和动画等功能。HTML5 Canvas 支持多种绘制方法和功能,如绘制路径、填充颜色、渐变效果、变换、裁剪等,能够满足开发者对图形绘制的各种需求。 开发者可以使用 HTML5 Canvas 来绘制各种图形,如线条、矩形、圆形、文本、图片等。此外,HTML5 Canvas 还支持鼠标和触摸事件的监听,使得开发者可以实现与用户的交互。通过监听事件,开发者可以实现鼠标点击、拖动、缩放等交互行为,为用户提供良好的用户体验。 HTML5 Canvas 的开发详解 PDF 提供了对 HTML5 Canvas 进行全面学习和实践的指导。这本书详细介绍了 HTML5 Canvas 的各种特性和用法,并通过实例讲解了如何使用 HTML5 Canvas 来创建各种图形和动画效果。书中还介绍了一些常见的图形绘制和动画技巧,如绘制路径、使用图案填充、利用渐变效果来实现特殊的图形效果等。 此外,这本书还介绍了如何使用 HTML5 Canvas 结合其他 Web 技术来完成一些实际的开发项目。比如,如何利用 HTML5 Canvas 和 JavaScript 来创建一个简单的游戏,如何使用 CSS3 和 HTML5 Canvas 来实现一个纯 CSS 动画等。这些实例给开发者提供了实践的机会,帮助他们更好地理解和掌握 HTML5 Canvas。 总之,HTML5 Canvas 是一种非常有用和强大的图形绘制技术,而这本开发详解 PDF 则为想要学习和深入了解 HTML5 Canvas 的开发者提供了宝贵的资料和指导。 ### 回答2: HTML5 Canvas开发详解PDF是一本讲解HTML5 Canvas技术的开发手册,该书内容丰富,涵盖了HTML5 Canvas的方方面面。 首先,该书会介绍HTML5 Canvas的基本概念和原理。HTML5 Canvas是一个用于绘制图形的HTML元素,它可以通过JavaScript绘制、填充和操纵图形。本书将详细解释Canvas的API和基本用法,使读者能够理解如何使用Canvas来创建各种图形,包括线条、矩形、圆形等。 其次,该书将深入讲解Canvas的复杂图形绘制和动画效果。它覆盖了各种高级技术,如路径绘制、渐变效果、阴影效果等。读者将学会如何使用这些技术来创建更加复杂和绚丽的图形效果,并且能够运用Canvas的动画功能来实现各种生动的动画效果。 此外,该书还将介绍如何在Canvas中处理用户交互。读者将学会如何添加事件监听器来捕捉用户的点击、拖拽等操作,并通过JavaScript代码对其作出反应。这将使开发者能够为Canvas图形添加交互性,使用户能够与图形进行互动。 最后,该书还包含一些实际项目案例和实践指导。通过这些案例,读者可以了解如何将HTML5 Canvas应用于实际开发中,并且通过实践指导能够掌握一些开发技巧和最佳实践。 总之,HTML5 Canvas开发详解PDF是一本全面介绍HTML5 Canvas技术的教程,无论是初学者还是有一定经验的开发者,都能从中获得宝贵的知识和技巧。该书对于想要深入学习和应用HTML5 Canvas的人来说是一本非常有价值的工具书。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值