首页

文章

怎么使用node.js进行快速截图

发布网友 发布时间:2022-04-19 10:01

我来回答

1个回答

热心网友 时间:2022-04-22 06:56

使用node-webshot进行网页截图
用到的npm模块有yargs和node-webshot,关于yargs的文章参考这里 从零开始打造个人专属命令行工具集——yargs完全指南 。
node-webshot是调用phantomjs来生成网页截图的,phantomjs是非常有名的npm项目,相当于一个脚本版的WebKit浏览器 ,通过phantomjs可以使用脚本 和网页进行交互,所以phantomjs经常用来进行网页自动化测试。
phantomjs会和普通的浏览器一样加载完整的网页内容,然后在内存里面进行渲染,虽然肉眼看不到它渲染的页面,但是通过生成图片就可以看到了,node-webshot使用的就是phantomjs的render接口来获取网页截图的。
node-webshot生成谷歌首页的示例代码:
var webshot = require('webshot'); webshot('google.com', 'google.png', function(err) { // screenshot now saved to google.png});phantomjs生成谷歌首页的示例代码: var page = require('webpage').create();page.open('http://github.com/', function() { page.render('github.png'); phantom.exit();});

那为什么不直接使用phantomjs呢?一个字懒!
另外node-webshot还对文件读写进行了简单的封装,相信任何熟悉node.js的开发人员,都能很简单的写出这样的接口,但是既然轮子好用就不要自己造了。
node-webshot流式调用的写法:
var webshot = require('webshot');var fs = require('fs'); var renderStream = webshot('google.com');var file = fs.createWriteStream('google.png', {encoding: 'binary'}); renderStream.on('data', function(data) { file.write(data.toString('binary'), 'binary');});

node-webshit还支持生成移动版的网页截图:
var webshot = require('webshot'); var options = { screenSize: { width: 320 , height: 480 }, shotSize: { width: 320 , height: 'all' }, userAgent: 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_2 like Mac OS X; en-us)' + ' AppleWebKit/531.21.20 (KHTML, like Gecko) Mobile/7B298g'}; webshot('flickr.com', 'flickr.jpeg', options, function(err) { // screenshot now saved to flickr.jpeg});

最后再把yargs和node-webshot进行集成,可惜这部分工作人家也帮我们做好了,直接安装就行。
npm isntall -g webshot-cli

使用desktop-screenshot进行系统截图
desktop-screenshot是一个跨平台的系统截图项目,用法和node-webshot类似,只是少了一个url参数。var screenshot = require('desktop-screenshot'); screenshot("screenshot.png", function(error, complete) { if(error) console.log("Screenshot failed", error); else console.log("Screenshot succeeded");});
ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 食品生产许可证编号开头为“ G”。 如何用nodejs快速搭建网站 如何使用nodejs快速搭建本地服务器 nodejs如何获取快捷方式的真实指向? 推文怎么编辑排版? 生物体的结构层次生物与环境 ae=2∠b=60度 寻求几个经典的魔兽防守地图,要下载地址 什么是AE考试 不会ae作业怎么办 谁有翻开书页后逐渐出字的AE特效模板..急求 矩形ABCD为台球桌面,AD为260厘米,AB为130厘米,球目前在E点,AE为60厘米 如图某兴趣小组,为了测量塔cd的高度,在a处用高为1米的cejiaoyi 求AE素材,免费下载的网址,谢谢啦 ae怎么让扣出圆让它转 AE帧速率30秒和60秒有什么区别? 404 Not Found ae打开工程文件进度卡在60%就不动了 ae免费好一点的模板和学习网站 AE字体剥落效果怎么制作?AE制作字体剥落效果方法 在ae中60fps的视频直接拖到25 fps的合成里会怎么样? 如何快速启动nodejs服务 nodejs 如何快速的遍历大量的文件夹 404 Not Found win7下 怎么通过运行命令行快速启动nodejs nodejs怎么安全便捷的实现网站7天免登录功能 如何让快速/的NodeJS CORS node.js现在被普遍视为前端工作范畴吗 安装nodejs是一些选项是什么意思 如何用nodejs去做网页截图 webstorm怎么才能使用nodejs 404 Not Found 小米控制中心怎么用 小米miui11控制中心怎么设置 小米控制中心如何设置 MIUI12控制中心怎样关闭 红米note94g新版控制中心怎么用? 红米手机怎么设置控制中心 小米手机控制中心怎么控制音乐 miui云控怎么关 小米控制中心怎么设置从下面划出来
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com