• Stars
    star
    142
  • Rank 258,495 (Top 6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 10 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Take screenshots using electron

electron-screenshot-service Build Status

Take screenshots using electron

Install

npm install electron-screenshot-service

Usage

var fs = require('fs');
var screenshot = require('electron-screenshot-service');

screenshot({
  url : 'http://google.de',
  width : 1024,
  height : 768
})
.then(function(img){
  fs.writeFile('./out.png', img.data, function(err){
    screenshot.close();
  });
});

screenshot(options)

Will return a Promise containing an object like:

{
  data: <Buffer >
  size: {
    width: X
    height: N
  }
}

In addition to all options that can be passed to the BrowserWindow you can pass:

delay

Type: number (milliseconds)
Default: 0

Delay capturing the screenshot.

Useful when the site does things after loading that you want to capture.

width

Type: number Default: 0

Specify the with of the browser window

height

Type: number Default: 0

Specify the height of the browser window

crop

Type: Object
Default: undefined

An crop object may look like this:

{
  x : 10,
  y : 10,
  width : 100,
  height : 100
}
css

Type: String
Default: undefined

This css will be injected into the page before the screenshot is taken.

js

Type: String
Default: undefined

It must contain a function definition that takes on parameter e.g.

js: 'function(takeScreenshot){ /*Do some stuff*/ takeScreenshot();}'

or

js: 'takeScreenshot => { /*Do some stuff*/ takeScreenshot();}'
transparent

Type: Boolean
Default: false

This will enable transparency. Keep in mind that most site do set a background color on the html/body tag. You can overwrite this by using the css option using something like html,body{ background-color: transparent !important;}.

page

Type: Boolean
Default: false

This will try to capture the whole page. width and height are considered the minimum size.

screenshot.close()

Will close the screenshot service. Needed to let the node process exit

screenshot.scale(scale)

Scale the number of electron processes to scale processes. This will round-robin the screenshot jobs across scale instances.

Changelog

4.0.3
4.0.2
4.0.1
4.0.0
3.3.1
3.3.0
3.2.3
  • Fix PORT bug on windows (Thanks to peerbolte)
3.2.2
3.2.1
  • Fix post install script on windows
3.2.0
3.1.3
3.1.2
3.1.1
  • Fix bug that prevent running in node ^6.0.0
3.1.0
  • Update to [email protected]
  • Use cross-spawn insated of cross-spawn-async
  • Update dependencies
3.0.0
2.3.1
2.3.0
2.2.1
2.2.1
  • Fix installation on windows (#14)
2.2.0
2.1.0
2.0.0
  • Upgrade to [email protected].
  • Fix race-condition in error reporting.
  • Add screenshot.scale API
1.7.0
1.6.0
1.5.3
1.5.3
  • Fix a typo in error handeling code. (Thanks to @adig #6)
  • Pin electron to version 0.33.4
1.5.2
1.5.1
1.5.0
1.4.1
1.4.0
1.3.1
1.3.0
1.2.2
1.2.1
1.2.0
1.1.4
1.1.3
1.1.1
  • Fixed some issues with error handeling
  • Stop electron from closing when last window was closed
1.1.0
1.0.2
1.0.1
  • Hide the window again.
1.0.0
0.5.0
0.4.5
  • Fix bug on linux (X11)
0.4.4
  • Update to atom-shell .0.22.7
  • Improved perfomance by switching to axon for ipc.
0.4.3
  • Fix scroll jumping
0.4.1
  • Cleanup repository
  • Remove duplicated dependency to socket.io-client
0.4.0
  • Update to atom-shell 0.20.6.
  • Better handeling of pages with iframes
  • Include jquery because of a "bug" in atom-shell (See [#254](See electron/electron#254))
  • Better error handeling
0.3.2
  • Use window.requestAnimationFrame to be sure that at least one paint has happend.
0.3.1
  • Force a redraw after injecting css
0.3.0
  • Add css option to inject custom css
0.2.0
  • Update to atom-shell 0.20.5
  • Add close() method
0.1.3
  • Update to atom-shell 0.19.5
0.1.2
  • Update to atom-shell 0.15.8
0.1.1
  • Update to atom-shell 0.15.4
0.1.0
  • 0.1.0 Inital release

More Repositories

1

grunt-svgstore

Merge svgs from a folder
JavaScript
920
star
2

nodeshot

A simple screenshot web service powered by Express and node-webkit.
JavaScript
134
star
3

Scrubbing.js

Highly customizable mouse scrubbing implementation for numbers and custom data.
JavaScript
79
star
4

rclone-js

Encrypt/Decrypt files in your browser
JavaScript
76
star
5

node-osascript

Use AppleScript from node
JavaScript
68
star
6

metalsmith-watch

A metalsmith plugin to watch for a changes and trigger rebuilds.
JavaScript
60
star
7

ios7translucent-css

Implementation of the iOS7 translucent topbar using CSS Regions Implementation of the iOS7 translucent topbar using CSS Regions
CSS
58
star
8

nthEverything

Adding pseudo classes ::nth-word/letter ::first/last-word/letter
JavaScript
43
star
9

electron-screenshot-app

Take screenshots
JavaScript
40
star
10

node-webkit-screenshot

Create screenshots using node-webkit
JavaScript
37
star
11

grunt-scsslint

NO LONGER MAINTAINED use https://github.com/ahmednuaman/grunt-scss-lint
JavaScript
31
star
12

cssattr.js

CSS attr() Polyfill
JavaScript
30
star
13

homebridge-rcswitch

Integrate your 433 remote switches into homebridge
JavaScript
17
star
14

ESP8266-WebSocket-Demo

Play a video on an SSD1306
Objective-C
16
star
15

socket-connection

Web Component to interact with a http://socket.io/ server
14
star
16

CDocParser

A language agonistc C style comments parser that uses block comments to make it easer to generate documenation.
JavaScript
11
star
17

sb-layout

Build https://scriptable.app widgets using JSX-like syntax
JavaScript
10
star
18

react-thumbnail

Include a static version of a webpage or your react element
JavaScript
8
star
19

tlkio-bot

Just a simple tlk-io bot that can do things
JavaScript
8
star
20

scsslint

nodejs bindings for scss-lint
JavaScript
6
star
21

moddable-webide

A WebIDE to get started with moddable
JavaScript
6
star
22

oracle-secret

Encode/Decode Legend of Zelda Oracle of Ages and Oracle of Seasons secrets.
JavaScript
5
star
23

jqueryhighlight

A little plugin to search for text in the DOM
JavaScript
4
star
24

websocket.mod

A WebSocket written in BlitzMax.
3
star
25

tlkio-client

Kinda low-level tlkio-client used by hubot-tlkio and my own tlkio-bot
CoffeeScript
3
star
26

hot-key

A Polymer element for lisiting to keyboard events
2
star
27

nodequote

quote.fm API wrapper for nodejs
JavaScript
2
star
28

uriFragmentPolyfill

Polyfill for the spatial dimension portion of the Media Fragments URI spec (http://www.w3.org/TR/media-frags/#naming-space)
JavaScript
2
star
29

component-load

A web component to dynamically load web components.
1
star
30

sassyjson_examples

Basic usage examples for various configurations
JavaScript
1
star
31

my-tlkio-bot

a hubot with my hubot-tlkio adapter.
CoffeeScript
1
star
32

hubot-tlkio

Hubot adapter for tlkio
CoffeeScript
1
star
33

RWTHKalenderAbo

Sync with CampusOffice
JavaScript
1
star
34

esphome-moddable

Early draft of the protobuf based ESPHome native api for moddable
TypeScript
1
star
35

babel-plugin-named-asset-import

[Not maintained] Asset loading based on named import
JavaScript
1
star