pngtoolskit.org
PNG and image utilities, in the browser
Say hi →

Join Images into One

side by side or stacked · gap · alignment · drag to reorder · nothing uploaded

Combine several images into a single file — before/after comparisons, a strip of screenshots for a bug report, a stacked sequence for documentation. Drop them in, reorder with the arrows in the list, pick a direction, and download one image.

Drop two or more images here

Use the arrows in the list to set the order

    no files
    Ready.

    Mixed sizes, and the two ways to handle them

    By default images keep their original dimensions. The canvas is sized to the largest one across the joining axis and the others are aligned within it, leaving space where they're smaller — transparent, or your background colour. Nothing is scaled, so nothing gets soft.

    Tick match sizes and every image is scaled so its cross-axis dimension equals the smallest one in the set: joining horizontally makes all heights equal, joining vertically makes all widths equal. That produces a clean, seamless strip with no gaps, at the cost of downscaling the larger images. For a before/after comparison of two screenshots at different zoom levels, this is usually what you want.

    Order and alignment

    Files join in the order shown in the list, which is the order you dropped them — and that isn't always the order you meant, since browsers don't guarantee alphabetical ordering from a multi-select. The arrows in the file list move items up and down, so check the order before running.

    Alignment only matters when the sizes differ. Start / end are what you want for images that share a meaningful edge — screenshots that should line up along the top, for instance.

    For a grid rather than a single row or column, Sprite sheet packs images into rows and columns. Split tiles reverses it, and Overlay images stacks them on top of each other rather than beside.

    FAQ

    How many images can I join?

    As many as your browser's canvas can hold. Twenty full-size photos in one row will exceed the maximum canvas width — tick match sizes, or join in stages.

    Is transparency kept?

    Yes. The output is PNG, and any transparent areas — including gaps between differently-sized images — stay transparent unless you set a background colour.

    Can I add labels or captions?

    Not here. Generate the text with Text to PNG and join it as one of the images, or use Watermark to stamp text onto the result.

    Why is the output so large?

    It's the sum of every input. Run it through Resize or Compress afterwards.