Merge multiple images into a single image
merge-img
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 Jimp
for image processing.
Image credit: https://www.pexels.com/
$ npm install merge-img
import mergeImg from 'merge-img';
mergeImg(['image-1.png', 'image-2.jpg'])
.then((img) => {
// Save image as file
img.write('out.png', () => console.log('done'));
});
images
Array of (String | Object | Buffer | Jimp) - List of images to concat. IfString
is passed, it will be considered to the file path. Also you can pass other Jimp object. AnObject
entry can have following options:src
String
orBuffer
- A single image source to concat.offsetX
Number (optional) -x
offset to affect this image. Default is0
.offsetY
Number (optional) -y
offset to affect this image. Default is0
.
options
Object (optional)direction
Boolean - Direction of the merged image. If this value istrue
, the images will be merged vertically (column). Otherwise, the images will be merged horizontally (row). Default isfalse
.color
Number (hex) - Default background color represented by RGBA hex value. Default is0x00000000
.align
String - Aligning of given images. If the images are not all the same size, images will be sorted to largest image. Possible values arestart
,center
andend
. Default isstart
.offset
Number - Offset in pixels between each image. Default is0
.margin
(Number | String | Object) - Margin of the result image. IfNumber
orString
is passed, it will be considered as standard css shorthand properties (e.g. '40 40 0 10'). AnObject
entry can have following options:top
Number (optional) - Margin on top side of result image. Default is0
.right
Number (optional) - Margin on right side of result image. Default is0
.bottom
Number (optional) - Margin on bottom side of result image. Default is0
.left
Number (optional) - Margin on left side of result image. Default is0
.
Returns a Promise
that contains Jimp
object.