ASCII码 ASCII码

如何用vue实现网页截图你知道吗

发布于:2022-04-22 16:06:59  栏目:技术文档

这篇文章主要为大家介绍了vue如何实现网页截图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助目录

  1. 1、安装html2Canvas
  2. 2、在需要的vue组件中引入
  3. 3、编写一个截图按钮
  4. 4、调用函数toImage
  5. 总结

1、安装html2Canvasnpm install html2canvas --save

2、在需要的vue组件中引入

import html2canvas from "html2canvas";

3、编写一个截图按钮

<el-button class="button-dalod" size="mini" title="生成图片" @click="toImage()" icon="el-icon-download"></el-button>

4、调用函数toImage

  1. // 页面元素转图片
  2. toImage () {
  3. // 手动创建一个 canvas 标签
  4. const canvas = document.createElement("canvas")
  5. // 获取父标签,意思是这个标签内的 DOM 元素生成图片
  6. // imageTofile是给截图范围内的父级元素自定义的ref名称
  7. let canvasBox = this.$refs.imageTofile
  8. // 获取父级的宽高
  9. const width = parseInt(window.getComputedStyle(canvasBox).width)
  10. const height = parseInt(window.getComputedStyle(canvasBox).height)
  11. // 宽高 * 2 并放大 2 倍 是为了防止图片模糊
  12. canvas.width = width * 2
  13. canvas.height = height * 2
  14. canvas.style.width = width + 'px'
  15. canvas.style.height = height + 'px'
  16. const context = canvas.getContext("2d");
  17. context.scale(2, 2);
  18. const options = {
  19. backgroundColor: null,
  20. canvas: canvas,
  21. useCORS: true
  22. }
  23. html2canvas(canvasBox, options).then((canvas) => {
  24. // toDataURL 图片格式转成 base64
  25. let dataURL = canvas.toDataURL("image/png")
  26. console.log(dataURL)
  27. this.downloadImage(dataURL)
  28. })
  29. },
  30. //下载图片
  31. downloadImage(url) {
  32. // 如果是在网页中可以直接创建一个 a 标签直接下载
  33. let a = document.createElement('a')
  34. a.href = url
  35. a.download = '首页截图'
  36. a.click()
  37. },

别忘了给页面所在截图范围内的父级添加ref属性,方便canvas找到父级计算宽高从而截屏

这就是截图出来的效果:总结

本篇文章就到这里了,希望能够给你带来帮助。

相关推荐
阅读 +