Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Use:
- phantomjs render.js 1024x768 http://gasteroprod.com/
- */
- var args = require('system').args,
- url = 'http://www.google.com/',
- now = new Date(),
- nowString = now.getFullYear() + pad(now.getMonth() + 1) + pad(now.getDate()) + '-' + pad(now.getHours()) + pad(now.getMinutes()) + pad(now.getSeconds()),
- viewportSize = {width: 1280, height: 1024},
- page = require('webpage').create();
- if (args.length >= 1) {
- args.forEach(function(arg, i) {
- // set URL
- if (arg.match(/^https?:\/\//)) {
- url = arg;
- }
- // set viewport size
- if (arg.match(/^[0-9]+x[0-9]+$/)) {
- var viewportParts = arg.split('x');
- viewportSize = {width: viewportParts[0], height: viewportParts[1]};
- }
- });
- }
- console.log('Url: ' + url);
- console.log('Viewport: width=' + viewportSize.width + ' / height=' + viewportSize.height);
- page.viewportSize = viewportSize;
- page.clipRect = {
- top: 0,
- left: 0,
- width: viewportSize.width,
- height: viewportSize.height
- };
- var screenshotPath = 'screenshots/' + nowString + '-' + viewportSize.width + 'x' + viewportSize.height + '/screenshot-';
- // launch timer
- var timer = Date.now();
- // open the page and kill phantom upon completion
- page.open(url, function (status) {
- phantom.exit();
- });
- // try to get a screenshot every 10 milliseconds
- setInterval(function() {
- page.render(screenshotPath + pad(Date.now() - timer, 6) + '.png');
- }, 10);
- // 30 seconds timeout
- setTimeout(function() {
- phantom.exit();
- }, 30000);
- function pad(number, size) {
- var r = String(number);
- while (r.length < size) {
- r = '0' + r;
- }
- return r;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement