Skip to content

Latest commit

 

History

History
100 lines (81 loc) · 3.3 KB

README.md

File metadata and controls

100 lines (81 loc) · 3.3 KB

#Beautystack.js

A node.js module to make beautiful stacks of photos. It utilizes Imagemagick polaroid feature and gives you simple and node.js ready solution to generate images stacks like this:

##Features

  • Supports background color, image or trancparency
  • Has many customization parameters like spacing, rotation, quality
  • Supports directory or array of files for input
  • Works asynchroniously, supports simultanious conversions of images
  • Has event for tracking progress of conversion in percents
  • Makes loseless autorotations of original images

##Installation For this module only ImageMagick and jhead are needed to be installed.

###For Ubuntu and Debian apt-get install imagemagick apt-get install jhead

###For Mac OS X brew install imagemagick brew install jhead

###Instalation of module Via npm:

npm install beautystack

Or clone repo:

npm install git://github.com/bagdonas/beautystack.git

##Getting Started The bare minimum code needed to start conversion:

var beautystack = require('beautystack');

var bs = new beautystack;

var config = {
  source: 'images/',
  output: 'output/example1.png',
};

bs.process(config, function(err, data) {
  if (err) {
    console.log('Beautystack processing error: ' + err);
    return;
  }
  console.log('Photos processed! Check out your new beautiful stack of photos: ' + data.output);
});

To track the progress of conversion:

bs.on('progress', function(data) {
  console.log("Percent: " + data.percent);
});

More configuration examples:

var config = {
  source: [ //now source is the list of image paths, in example above it was directory
    'images/Yellow-leaf.jpg',
    'images/Winter-wallpaper-by-cool-wallpapers-15.jpg',
    'images/winter-accident.jpg',
    'images/wallpapers-nature-animals.jpg',
    'images/Spring-starts.jpg'
  ],
  output: 'output/example1.png', //where to put file after conversion, also you can choose file type by changing extension
  width: 200, //width of all those small images
  height: 140, //height
  columns: 4, //columns of small images in output image
  rotation: 30, //max rotation angle in degrees, it varties randomly between minus and plus of this value
  background: 'transparent', //could be some color like 'white', 'red' or image ***STILL WORKING ON THIS
  quality: 96 //quality of output image
};

Important. Keep attention when selecting output file type and background, because for example jpeg doesn't support transparency. Most other formats supports it.

##Todo

  • Make everything faster
  • Add more options to customize a stack
  • Fully implement all kinds of background types
  • Make it work with buffers
  • Better control 'the flow' of module, because image conversions is really strainful for cpu
  • Limit simultanious conversions respecting the speed of computer or VM
  • Better utilize multicore systems
  • Monitor server load and schedule conversation tasks accordingly
  • Distribute conversion tasks on multiple servers

##Author Martynas Bagdonas

Check out some other interesting projects on my blog.

##License MIT