前言:
此刻我们对“js网页截图”大概比较注意,咱们都想要了解一些“js网页截图”的相关文章。那么小编同时在网络上搜集了一些对于“js网页截图””的相关资讯,希望大家能喜欢,看官们一起来学习一下吧!在开发vue项目,有时会遇到需要页面截图或指定区域截图需求。今天给大家推荐2个超赞的截图插件。
1、html2canvas
一款超强大的Javascript页面截图类库,star高达21.4K+。支持h5页面截图、区域截图及跨域截图等功能。
下面讲一下如何在vue中使用html2canvas截图。
安装
$ npm i html2canvas -S
使用组件
<template> <div class="shot-wrapper"> <!-- 要截图的区域,动态生成 --> <div class="shot-area" id="content" ref="imageToFile"></div> <!-- 截图生成图片 --> <img :src="img" v-if="img"/> <button type="button" class="shot-btn" @click="screenShot">开始截图</button> </div></template><script> import html2canvas from 'html2canvas' export default { data() { return { img: "" } }, methods: { screenShot() { html2canvas(this.$refs.imageToFile, { width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight, }).then((canvas) => {// 第一个参数是需要生成截图的元素,第二个是自己需要配置的参数,宽高等 this.img = canvas.toDataURL('image/png'); }) }, }, components: { html2canvas } }</script>
如果大家想要了解更多用法,可以自行去官网查阅资料哈~~
# 文档地址 仓库地址2、Dom-To-Image
一款超不错的将任意DOM节点转换为用JavaScript编写的矢量(SVG)或光栅(PNG或JPEG)图像的库。star高达6.4K+。
下面介绍下在vue中如何使用domtoimage进行截图。
安装
$ npm i dom-to-image -S
使用组件
<template> <div class="domtoimage-wrapper"> <!-- 要截图的区域,动态生成 --> <div class="dom-area" id="my-node"></div> <!-- 截图生成图片 --> <img :src="img" v-if="img"/> <button type="button" class="shot-btn" @click="shotPic">开始截图</button> </div></template><script> import domtoimage from 'dom-to-image' export default { data() { return { img: "" } }, methods: { shotPic() { let node = document.getElementById('my-node'); domtoimage.toPng(node) .then((dataUrl) => { this.img = dataUrl; }) .catch(function (error) { console.error('oops, something went wrong!', error); }); } }, components: { domtoimage } }</script>
domtoimage主要的属性
filter:过滤器节点中默写不需要的节点;bgcolor:图片背景颜色;height,width:图片宽高;style:传入节点的样式,可以是任何有效的样式;quality:图片的质量,也就是清晰度;cacheBust:将时间戳加入到图片的url中,相当于添加新的图片;imagePlaceholder:图片生成失败时,在图片上面的提示,相当于img标签的alt;
domtoimage主要的方法
domtoimage.toPng(...); 将节点转化为png格式的图片;domtoimage.toJpeg(...); 将节点转化为jpg格式的图片;domtoimage.toSvg(...); 将节点转化为svg格式的图片,生成的图片的格式都是base64格式;domtoimage.toBlob(...); 将节点转化为二进制格式,这个可以直接将图片下载;domtoimage.toPixelData(...); 获取原始像素值,以Uint8Array 数组的形式返回;
最后附上项目地址,可以去了解更多信息。
# 仓库地址
ok,就介绍到这里。如果大家有其它优秀的Vue截图组件,欢迎分享交流!
标签: #js网页截图 #html过滤图片 #html密码登录页面截图 #js截图方法 #vue中如何使用canvas