web-camera網頁截圖工具
來自: http://finalshares.com/read-6723
web-camera網頁截圖工具
作者&源碼: https://github.com/node-modules/webcamera
通過phantomjs來打開渲染網頁,對網頁進行截圖。
Usage
var Camera = require('webcamera'); var fs = require('fs');/**
- web camera by Node.js and Phantomjs
- @param {Object} options
- path {String} default picture dir path
- workerNum {Number} child_process max num
- timeout {Number} child_process timeout.
- phantom {String} phantomjs path
- phantomScript {String} phantomjs script path, use input arguments as default script
- qnClient {Object} qiniu client instance
- qnOpts {Object} qiniu options. if do not have qnClient and qnOpts, shotQN become invalid */ var camera = Camera.create({ qnOpts: { accessKey: 'accessKey', secretKey: 'secretKey', bucket: 'webcamera' } });
// 當處理速度比調用速度低時會觸發此事件 camera.on('overload', function (listLength) { //listLength為排隊等待處理的長度 });
// 截圖保存到本地
camera.shot('
// 截圖作為stream
camera.shotStream('
//截圖上傳到七牛空間,第二個參數為上傳七牛的options,第三個參數是截圖的options
camera.shotQN('
data.should.like:
({
hash: 'FlDGti9pVGQ3sw2oao-mVu3nZWjZ',
key: 'test/baidu.png',
url: '/
});</pre>
所有的調用都可以在 callback 之前傳入參數 options . camera.shotQN('http://www.baidu.com',320, 'baidu.png', {
clipRect: {
top: 0,
left:0,
height: 'all',
width: 'all'
}
}, function (err, data) {
/*
data.should.like:
{name: 'L1/1/320/baidu.png', size: 36889, url: 'xxx/L1/1/320/baidu.png'}
*/
});
名字 | ||
---|---|---|
clipRect | ||
viewportSize | Object | 設置網頁的分辨率,有兩個屬性:width(1024), height(768)。 |
renderDelay | Number | 網頁加載完成之后延遲多少毫秒之后截圖,默認為0 |
picPath | String | 設置圖片保存位置,只在 shot 方法時生效,等效于shot方法的第二個參數 |
mimeType | String | 設置截圖的保存類型(只有在沒設置圖片保存路徑的情況下生效,否則使用圖片保存路徑的后綴類型),支持png, jpeg, gif.默認為png |
script | Function | 網頁加載完成之后可以在網頁中執行這個方法。 |
quality | Number | 0~100,指定生成圖片的質量,數值越高質量越好 |