网页截图js(网页截图截长图)

发布时间:2023-12-08

网页截图js(网页截图截长图)

更新:2022-11-14 03:09

本文目录一览:

  1. 如何用nodejs去做网页截图
  2. 怎么使用node.js进行快速截图
  3. 如何用 js 做网站截图

如何用nodejs去做网页截图

很多情况下,我们都需要在电脑上做一些截图的操作。有哪些常用的截图方法呢?

  1. 按键盘上的print screen 键:这个方法很麻烦,估计很少人用吧! 如果有如下需求:
  2. 截取一个网页,也就是一个滚动窗口的所有内容;
  3. 需要重复截取屏幕上的某一个固定区域,比如一个窗口截图一次后,做了一些修改,要重复截取一次,标识改变的地方;
  4. 在截图上画矩形框、气泡框、箭头,加汉字等 这样的需求,QQ截图虽然可以实现,但是那就太麻烦了,所以今天给大家推荐一款快捷好用的截图软件,叫做PicPick 软件安装包不大,开启后占用约25MB内存,所以即使设定为开机启动,也不会造成太大的性能影响。同时,这款软件原生支持全中文,并且对于个人及家庭用户是免费的,也不用考虑是否需要汉化或者破解之类的问题。 工具/原料
  • PicPick
  • windows 软件主界面介绍
  1. 首先需要下载此软件,截止2013-11-06,最新的版本应该是3.2.8。安装过程中,会要求安装另一个系统优化的软件,大家直接拒绝就可以了
  2. 安装完毕后,此软件界面如图,主要的功能也都体现在主界面上了。 右边的实用工具就不多介绍了,一看就明白,支持“屏幕取色”、“调色”、“放大镜”、“标尺”、“坐标轴”、“量角器”和“白板”功能。绝对是设计师和PPTer的好帮手。 主界面左下方的截图工具才是重点,介绍如下:
  3. 全屏:当前整个屏幕
  4. 窗口控件:使用这个截图功能的时候,会出现一个红框,单击鼠标,红框范围内的窗口就会被截取了
  5. 滚动窗口:比如一个很长的网页,支持一次性截取为图片。虽然很多浏览器都支持,但是这个软件还支持比如IE之类的浏览器,很实用。
  6. 矩形区域:最常用的,截取一个矩形框中的内容
  7. 固定区域:截取某一个固定区域
  8. 任意形状:比如截图一个圆形啊、心形啊之类的都可以
  9. 重复上次截取:这才是真正的最实用的功能,可以把上一次截取的区域再截取一次,超级好用 截图步骤
  10. PicPick软件截图,有如下的方法:
    1. 主界面截图:就是在如下界面上,选择相应的功能
    2. 在工具栏托盘中,单击PicPick的图标,选择“截取屏幕”
    3. 使用快捷键,具体的键位设定请参见软件的设置界面,图片中是我最常用的功能和自定义的快捷键
    4. 在编辑图片的窗口,左上角的文件菜单中,选择截取屏幕 图片修改
  11. 截图之后会自动打开图片编辑的窗口,如图,最常用的文字、矩形框等工具都在界面最上方,使用方法也很简单,单击相应的图形即可 其他设置
  12. 建议勾选该软件的如下设置,会让软件更好用
  13. 建议让软件开机自动启动即可,因为不占太多内存,功能也足够强大

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

使用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('', 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 install -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");
});

如何用 js 做网站截图

有个库 html2canvas.js,这个很多人用。 官网示例: HTML

<div id="capture" style="padding: 10px; background: #f5da55">
    <h4 style="color: #000;">Hello world!</h4>
</div>

JavaScript

html2canvas(document.querySelector("#capture")).then(canvas => {
    document.body.appendChild(canvas);
});