返回顶部
首页 > 资讯 > 前端开发 > node.js >node.js实现快速截图
  • 734
分享到

node.js实现快速截图

截图快速node 2022-06-04 17:06:02 734人浏览 八月长安
摘要

写文章的时候经常需要插入图片,插入现有的图片很简单,有时候制作一些优秀的网站列表的时候需要添加网页截图, 这个过程非常枯燥乏味,可以考虑开发一个命令行工具传入一个url,然后生成页面截图。 使用node-w

写文章的时候经常需要插入图片,插入现有的图片很简单,有时候制作一些优秀的网站列表的时候需要添加网页截图, 这个过程非常枯燥乏味,可以考虑开发一个命令行工具传入一个url,然后生成页面截图。

使用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"); 
}); 

这个是我的系统截图

查看图片

问题是我用调用命令行的时候这个窗口也会出现在截图上面,而且没有太好的办法来去除这个窗口,系统截图还是使用windows自带的好用点。

图片优化

最后介绍两个图片优化的工具

imagemin

svgo

svgo使用用来优化svg图片,svg将会代替icon font成为新的趋势,

--结束END--

本文标题: node.js实现快速截图

本文链接: https://lsjlt.com/news/12989.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • node.js实现快速截图
    写文章的时候经常需要插入图片,插入现有的图片很简单,有时候制作一些优秀的网站列表的时候需要添加网页截图, 这个过程非常枯燥乏味,可以考虑开发一个命令行工具传入一个url,然后生成页面截图。 使用node-w...
    99+
    2022-06-04
    截图 快速 node
  • win7怎么快速截图
    本文小编为大家详细介绍“win7怎么快速截图”,内容详细,步骤清晰,细节处理妥当,希望这篇“win7怎么快速截图”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、Win7屏幕截图...
    99+
    2022-12-08
    win7
  • 如果快速调用Windows7截图工具完成截图
    一般情况下,用户都会通过QQ软件来进行截图操作,如果没有连网、没有QQ,用户如何通过系统自带的截图工具进行截图呢?其实在win7系统下有一个非常好用的截图工具,只是调用十分的麻烦,所以下面就来教大家一个便捷方式,快速调用...
    99+
    2023-06-04
    Win7 截图工具 工具 Windows7 截图
  • Mac电脑上如何实现快捷截图
    Mac电脑上如何实现快捷截图,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Mac电脑中有着自带的快捷键和截图软件,但有些朋友并不是很清楚,今天小编就为大家带来了Mac电脑快...
    99+
    2023-06-05
  • Win7系统中快速截图的方法介绍(图文)
    Win7系统快速截图技巧。  1.“截图工具”真方便,轻松解决大问题  在微软公司最新推出的操作系统Windows 7 中为大家提供了一款名为“截图工具”的小软件,通过它就...
    99+
    2023-05-26
    Win7 快速截图 图文 系统 方法
  • win10电脑快速截图的方法有哪些
    本篇内容主要讲解“win10电脑快速截图的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win10电脑快速截图的方法有哪些”吧!方法一:PrtSc键截...
    99+
    2022-12-02
    win10
  • Python实现超快窗口截图功能详解
    实现思路是先获取到当前最上面活动的窗口信息,然后提取该窗口的名称信息。 之后获取窗口的坐标信息,即左上角的开始坐标及右下角的结束坐标。最后直接截图并将截图的图片进行展示。 其中用到...
    99+
    2024-04-02
  • golang实现截图
    近年来,随着人们对互联网的依赖程度越来越高,许多行业都开始向数字化转型。其中,网络通信和远程办公的需求日益增长,各种在线会议和远程工作工具也如雨后春笋般涌现出来。针对这些应用场景,截屏功能已成为了必不可少的一项功能。在本文中,我们将介绍如何...
    99+
    2023-05-16
  • C++实现屏幕截图(全屏截图)
    上回分享了一个全屏截图的代码,保存为BMP, C++实现屏幕截图(全屏截图):https://www.jb51.net/article/140184.htm 实际使用的过程中我发现截...
    99+
    2024-04-02
  • React和Node.js快速上传进度条功能实现
    目录正文技术栈实现过程1. 前端2. 后端服务(server.js)正文 在现代的Web应用程序中,文件上传是一个很常见的需求。上传进度条是一种用于告知用户上传进度的工具,它可以...
    99+
    2023-03-19
    React Node.js上传进度条 React Node.js
  • 图文详解JAVA实现快速排序
    高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。 假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个...
    99+
    2024-04-02
  • java实现快速排序图文详解
    目录高快省的排序算法排序算法显神威总结高快省的排序算法 有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。 假设我们现在对“6 1 ...
    99+
    2024-04-02
  • C++如何实现截图截屏
    这篇文章主要介绍了C++如何实现截图截屏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、截图工具1.1 键盘截图(PrtScn键)如何使用Microsoft Windows...
    99+
    2023-06-21
  • Solr快速实现
        在一些项目中,为了提高搜索的效率,一般都会使用外来工具,比如现在流行的ES、SOLR等等的工具,实现业务的模糊等搜索的快速反映。对于如何结合MySQL等操作略,具体可以查看网络相...
    99+
    2024-04-02
  • Java如何实现快速生成词云图
    本篇内容介绍了“Java如何实现快速生成词云图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!下载并安装jar到本地maven库登录该网站,在...
    99+
    2023-07-05
  • win7快速截图工具使用技巧轻松应付无法上网使用QQ截图
      通常情况下,大家习惯该台电脑无网络,无法使用QQ软件截图呢那么该怎么截图在win7系统中,有个非常好用的截图工具。 win7   便捷使用win 7截图工具小攻略:   1.首先单击开始&m   2.找到附件,打开。...
    99+
    2023-06-08
    win7 截图 工具 技巧
  • node.js怎么实现登录拦截器
    本文小编为大家详细介绍“node.js怎么实现登录拦截器”,内容详细,步骤清晰,细节处理妥当,希望这篇“node.js怎么实现登录拦截器”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先我们实现一个过滤器expo...
    99+
    2023-07-04
  • React和Node.js怎么实现快速上传进度条功能
    本文小编为大家详细介绍“React和Node.js怎么实现快速上传进度条功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“React和Node.js怎么实现快速上传进度条功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-07-05
  • python实现屏幕截图
    由于在我的一个程序中想要添加一个截图功能,今天看一下利用Python怎样截图,功能实现都挺简单了,直接上代码 from PIL import ImageGrab im = ImageGrab.grab() im.save(addr,'jp...
    99+
    2023-01-31
    截图 屏幕 python
  • php怎么实现截图
    今天小编给大家分享一下php怎么实现截图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。第一步:调用GD库在PHP中,调用GD...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作