Merge Images Side by Side (Horizontally)
Categories:
Merge Images Side by Side (Horizontally) with ImageMagick

Learn how to combine multiple images horizontally into a single composite image using ImageMagick's powerful convert
command. This guide covers basic merging, spacing, and alignment.
Combining images side by side is a common task in image manipulation, whether for creating comparison shots, photo collages, or visual documentation. ImageMagick, a free and open-source software suite, provides robust command-line tools for this purpose. This article will guide you through the process of horizontally merging images using the convert
command, offering practical examples and tips for achieving desired layouts.
Basic Horizontal Merging
The simplest way to merge images horizontally is by using ImageMagick's +append
operator. This operator takes a series of input images and concatenates them along the X-axis, creating a single output image. All input images are automatically aligned to the top by default.
convert image1.jpg image2.jpg image3.jpg +append output.jpg
Basic command to merge three JPEG images horizontally.
This command will take image1.jpg
, image2.jpg
, and image3.jpg
and place them next to each other, from left to right, saving the result as output.jpg
. The resulting image's width will be the sum of the widths of all input images, and its height will be the height of the tallest input image.
Adding Spacing Between Images
Often, you'll want to add some space or padding between the merged images for better visual separation. This can be achieved using the -splice
operator or by adding a transparent border to each image before appending. A more direct method involves creating a blank canvas of the desired width and height for the spacing.
convert image1.jpg -background white -splice 10x0 \( image2.jpg \) +append output_with_space.jpg
Merging two images with a 10-pixel white space in between.
In this example, -splice 10x0
adds a 10-pixel wide, 0-pixel high strip to the right of image1.jpg
. The -background white
option ensures this strip is white. The parentheses \( image2.jpg \)
group image2.jpg
as a separate operation before appending. You can repeat the -splice
operation for each gap you need.
flowchart LR A["image1.jpg"] --> B{"Add 10px Space"} B --> C["image2.jpg"] C --> D["image3.jpg"] D --> E["Combine with +append"] E --> F["output_with_space.jpg"] style B fill:#f9f,stroke:#333,stroke-width:2px
Workflow for merging images with spacing using ImageMagick.
Controlling Alignment and Background
By default, +append
aligns images to the top. You can change this behavior using the -gravity
operator before appending. Common gravity options include center
, south
(bottom), north
(top), west
(left), and east
(right). The -background
option sets the color of any empty space if images have different heights.
convert image1.jpg image2.jpg -gravity center -background black +append output_centered.jpg
Merging two images, centering them vertically, and filling background with black.
This command will center image1.jpg
and image2.jpg
vertically relative to each other. If one image is shorter, the empty space above and below it will be filled with black, as specified by -background black
. Experiment with different -gravity
settings to achieve the desired vertical alignment.
-gravity
, the background color specified by -background
will fill any areas where images do not perfectly align or if they have different dimensions.Resizing Images Before Merging
It's often necessary to ensure all images have consistent dimensions or aspect ratios before merging to avoid unexpected layouts. You can resize images on the fly within the convert
command using the -resize
operator.
convert image1.jpg -resize 200x200! image2.jpg -resize 200x200! +append output_resized.jpg
Resizing images to 200x200 pixels (forcing dimensions) before merging.
The !
after 200x200
forces the image to exactly these dimensions, ignoring aspect ratio. If you want to maintain the aspect ratio, simply use 200x200
(which resizes to fit within these bounds) or 200x
(resize to 200px width, auto-height) or x200
(resize to 200px height, auto-width).
1. Prepare your images
Gather all the images you wish to merge into a single directory or ensure you have their full paths ready.
2. Choose your merging strategy
Decide if you need spacing, specific alignment, or resizing. Plan the order of your images.
3. Construct the ImageMagick command
Use convert
with +append
and any necessary operators like -resize
, -gravity
, or -splice
.
4. Execute the command
Run the command in your terminal. Verify the output image for correctness.
5. Adjust and refine
If the output isn't perfect, modify the command parameters (e.g., spacing, resize values, gravity) and re-run until satisfied.