join-images
v1.4.0
Published
Merge multiple images into a single image
Maintainers
Readme
join-images
Merge multiple images into a single image
join-images is modified version of merge-img to make it work with sharp library.
join-images merges given images into a single image in right order. This will be helpful in a situation when you have to generate a preview of multiple images into a single image. This module is based on sharp for image processing.
Image credit: https://www.pexels.com/
Install
$ npm install sharp join-images$ yarn add sharp join-imagesUsage
File paths
const joinImages = require('join-images');
joinImages(['image-1.png', 'image-2.jpg']).then((img) => {
img.toFile('out.png');
});Buffers
const fs = require('node:fs');
const joinImages = require('join-images');
const sources = ['image-1.png', 'image-2.jpg'].map((source) => fs.readFileSync(source));
joinImages(sources).then((img) => {
img.toFile('out.png');
});Object inputs
const fs = require('node:fs');
const joinImages = require('join-images');
joinImages([
{ src: fs.readFileSync('image-1.png'), offsetX: 10 },
{ src: fs.readFileSync('image-2.png'), offsetY: 20 },
]).then((img) => {
img.toFile('out.png');
});Sharp pipelines
const joinImages = require('join-images');
const sharp = require('sharp');
const sources = ['image-1.png', 'image-2.jpg'];
joinImages(sources.map((source) => sharp(source).trim())).then((img) => {
img.toFile('out.png');
});API
joinImages(images[, options])
imagesArray of (String | Object | Buffer | Sharp) - List of images to concat. IfStringis passed, it will be considered to the file path. IfSharpis passed, the rendered output of that sharp pipeline is used. AnObjectentry can have following options:srcStringorBuffer- A single image source to concat.offsetXNumber (optional) -xoffset to affect this image. Default is0.offsetYNumber (optional) -yoffset to affect this image. Default is0.
optionsObject (optional)directionString (vertical|horizontal) - Direction of the merged image.`.color(String | Object) - Default background color represented by RGBA hex value. Default is{ alpha: 0.5, b: 0, g: 0, r: 0 }.alignString - Aligning of given images. If the images are not all the same size, images will be sorted to largest image. Possible values arestart,centerandend. Default isstart.offsetNumber - Offset in pixels between each image. Default is0.margin(Number | String | Object) - Margin of the result image. IfNumberorStringis passed, it will be considered as standard css shorthand properties (e.g. '40 40 0 10'). AnObjectentry can have following options:topNumber (optional) - Margin on top side of result image. Default is0.rightNumber (optional) - Margin on right side of result image. Default is0.bottomNumber (optional) - Margin on bottom side of result image. Default is0.leftNumber (optional) - Margin on left side of result image. Default is0.
Returns a Promise that contains sharp object.
