node package manager
Don’t reinvent the wheel. Reuse code within your team. Create a free org »

photo-collage

photo-collage

Combines several images into a photo collage.

Example

Source files

Source file 1 Source file 2 Source file 3 Source file 4 Source file 5 Source file 6

Result

Result

Installation

npm install --save photo-collage

This library depends on node-canvas, which may require additional setup. See their installation page for details.

Usage

The following example creates a 2x3 collage from a variety of image sources.

const createCollage = require("photo-collage");
 
const options = {
  sources: [
    imageBufferObject, // source can be a buffer of jpg/png data 
    canvasObject, // source can be a canvas object 
    "http://myurl.com/image.jpg", // source can be a url string 
    "https://myurl.com/image.jpg", // https/ftp is ok too. 
    "./localfile.png", // source can be a relative file path 
    "~/photos/file.png" // source can be an absolute file path 
  ],
  width: 3, // number of images per row 
  height: 2, // number of images per column 
  imageWidth: 350, // width of each image 
  imageHeight: 250, // height of each image 
  backgroundColor: "#cccccc", // optional, defaults to black. 
  spacing: 2, // optional: pixels between each image 
};
 
createCollage(options)
  .then((canvas) => {
    const src = canvas.jpegStream();
    const dest = fs.createWriteStream("myFile");
    src.pipe(dest);
  });