Image Merger
Merge multiple images into one locally: vertical or horizontal stacking in your chosen order, adjustable gap and background color, final size calculated before you export.
A chat log, a run of score screenshots, the steps of a tutorial — one long image always lands better than ten separate ones. Stack the images in the chosen order, vertically or horizontally, with an adjustable gap and background colour; images of differing widths are centred and aligned rather than stretched, and the final size is computed before anything is exported.
On the mechanics: a vertical stack takes the width of the widest image, centring the narrower ones and filling the sides with the background colour — a horizontal stack does the same with height — so nothing is ever stretched. The gap is the space between adjacent images (0–200 px); white suits chat screenshots and a dark background suits photos. GIFs keep only their first frame, and ten images at a time is the sensible limit.
Did this tool solve your problem?
Submitting sends the tool name, your input and the current result to the server. Please do not include ID numbers, phone numbers or other private data.
AI assistant It answers using your current input and result
Asking again sends your current input and result to the server once more. Please do not include private data.
How to use
- Select the images in the order they should be stacked.
- Choose vertical or horizontal.
- Set the gap and background colour, and check the computed output size.
- Export and download the merged image.
How it works
Select and stitch
Press "choose images" to pick several at once (or try the built-in demo), pick vertical or horizontal stitching with a gap, press stitch — the result size shows in the result area; download to save.
How alignment works
Vertical stitching takes the widest image as canvas width, centering narrower ones with the background filling the sides; horizontal stitching aligns by height the same way. Nothing is stretched or distorted.
Order follows selection
Stitching follows your selection order in the picker; to reorder, re-select the files. When filenames carry numbers, select in numeric order.
Spacing and background
The gap is the space between adjacent images (0–200 px); the background colour fills the sides of narrower images and the gaps between them. A white background suits chat screenshots, a dark one suits photo collages.
Code example
JavaScript Stitch a vertical long image
// measure everything first: one wrong size and the whole image is off or shows gaps
async function mergeVertical(files, gap = 0, bg = '#ffffff') {
const imgs = await Promise.all(files.map(createImageBitmap));
const width = Math.max(...imgs.map((i) => i.width));
const height = imgs.reduce((s, i) => s + i.height, 0) + gap * (imgs.length - 1);
const canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
const ctx = canvas.getContext('2d');
ctx.fillStyle = bg; // fill first so mixed widths do not leave gaps
ctx.fillRect(0, 0, width, height);
let y = 0;
for (const img of imgs) {
ctx.drawImage(img, (width - img.width) / 2, y); // centre each row when widths differ
y += img.height + gap;
}
return canvas;
}
Python Stitching with Pillow
from PIL import Image
imgs = [Image.open(p) for p in ['a.jpg', 'b.jpg', 'c.jpg']]
width = max(i.width for i in imgs)
height = sum(i.height for i in imgs)
canvas = Image.new('RGB', (width, height), 'white')
y = 0
for img in imgs:
canvas.paste(img, ((width - img.width) // 2, y))
y += img.height
canvas.save('merged.jpg', quality=92)
FAQ
Are images uploaded when stitching?
No. Decode, placement and compositing happen in browser memory — chat and order screenshots never leave your machine, and an offline connection doesn't affect the open page.
How many images per stitch?
Keep it to 10 images of 30 MB each. Vertical stitching accumulates height, and very tall results load slowly in some viewers; beyond 10, stitch in two passes then combine.
Will the stitched image be blurry?
No. Stitching places original pixels without scaling or resampling — clarity matches the sources. Result dimensions equal the sums (height for vertical, width for horizontal).
Why are there bands on the sides?
Vertical stitching adopts the widest image's width, so narrower images center with background on both sides. Pick images of equal width for a snug fit, or accept the fill — switch it to black or another color.
Can it make a 3x3 grid?
The current version stitches single rows/columns only. For grid layouts, use the grid cutter in reverse — compose first and screenshot — or your gallery's collage feature.
Do animated GIFs stay animated after stitching?
No. Stitching composites static images, keeping only the GIF's first frame. Keep GIF format or use video tools for animation.
Can iPhone HEIC photos stitch directly?
Depends on the browser's HEIC decoder — most desktop browsers lack it. Export to JPG from the system gallery first, then stitch.