A panorama posted to Instagram as a single image turns into a thin stripe in the feed. The same panorama cut into three or four slides and posted as a carousel fills the screen, and swiping moves across the picture as if you were panning a camera. The effect is simple to describe and easy to get slightly wrong: a slide one pixel off, or a last slide narrower than the rest, and the swipe jumps.
This guide explains how a seamless carousel works, how many slides a given panorama needs, what the cutting arithmetic looks like with real pixel counts, and how to use the Carousel Scroll Generator on Toolz to do the slicing in your browser.
TL;DR: A seamless carousel is one wide image cut into equal slides that share their edges exactly, posted in order so swiping scrolls the picture. The slide count is the panorama's aspect ratio divided by the slide's aspect ratio: a 3:1 panorama is 3 square slides or 4 portrait (4:5) slides. The carousel scroll generator suggests that count, crops the image to exactly that many slides' worth of width, cuts on whole-pixel boundaries, and exports 1080 px wide slides as JPEG, PNG or WebP in a numbered zip. It runs client-side, nothing uploaded, free, no signup.
What is a seamless Instagram carousel?
A seamless carousel is a carousel post whose slides are consecutive pieces of one image. Instead of stepping from one photo to the next, the viewer swipes and the picture continues across the gap. Landscape photographers use it for panoramas, designers use it for long illustrations, and brands use it for timelines or product lineups that run across several frames.
It works because a carousel shows slides side by side in a strip, and every slide in a post has the same size. If slide 1 ends at pixel column 1,200 of the original and slide 2 starts at column 1,200, the join is invisible. If slide 2 starts at column 1,198 or 1,203, a sliver of the picture repeats or vanishes, and on a straight horizon or a building edge that shows as a visible step.
Two platform rules shape everything else. As of this writing, Instagram accepts up to 20 slides in one carousel, and all slides in a post share the aspect ratio of the first one; a slide in a different shape gets cropped to match. Platforms change these details from time to time, so treat them as current behavior rather than a fixed specification.
Which slide shape should you choose?
Portrait 4:5 is the usual choice, because it is the tallest shape the Instagram feed displays and takes the most screen on a phone. Square and landscape are there when the composition suits them.
The generator offers the three carousel shapes, each exported 1080 px wide:
| Slide shape | Output size | Ratio (width / height) | Slides for a 3:1 panorama | Slides for a 4:1 panorama |
|---|---|---|---|---|
| Portrait (default) | 1080 x 1350 | 0.8 | 4 | 5 |
| Square | 1080 x 1080 | 1.0 | 3 | 4 |
| Landscape | 1080 x 566 | 1.91 | 2 | 2 |
The slide counts in the table come from one division, covered in the next section. The pattern to notice is that narrower slides need more of them to cover the same width. Portrait slides show the most height of the panorama per slide, which is usually what makes a landscape photo feel big, but they need more swipes. Landscape slides show a panorama in fewer, shorter frames and suit very wide, shallow images such as skylines.
How many slides does a panorama need?
Divide the panorama's aspect ratio by the slide's aspect ratio, then round to the nearest whole slide.
slides = round( (image width / image height) / (slide width / slide height) )
For a 3:1 panorama in portrait slides: 3 / 0.8 = 3.75, which rounds to 4. In square slides: 3 / 1 = 3. In landscape slides: 3 / 1.908 = 1.57, which rounds to 2.
For a 4:1 panorama, such as a 6000 x 1500 image: 4 / 0.8 = 5 portrait slides, 4 / 1 = 4 square slides, and 4 / 1.908 = 2.1, so 2 landscape slides.
The panorama to carousel tool runs this calculation as soon as you add an image, clamps the answer to between 1 and 10, and sets the Slides slider to it with a line such as "4 matches your image's proportions most closely." The slider itself runs from 2 to 10. Once you move it, the suggestion stops overriding your choice; adding a new image or picking a different slide shape brings the suggestion back.
The count rarely divides perfectly, so something has to give. Rounding up to more slides trims a little from the top and bottom of the panorama. Rounding down to fewer slides trims from the left and right. The generator makes that trim once, centered, before cutting, which is why every slide comes out the same size.
How does the tool cut slides without a seam?
It works in three steps, and each one exists to stop a specific kind of seam.
Step 1: crop the strip. The slides together form one long strip whose ratio is the slide ratio times the slide count. For 4 portrait slides that is 1080 x 4 / 1350 = 3.2. The tool takes the largest centered region of the image with exactly that ratio. If the image is wider than the strip, the sides are trimmed; if it is taller, the top and bottom are trimmed.
Step 2: split the strip into whole-pixel columns. The strip width is rounded to a whole number of pixels, divided by the slide count, and any leftover pixels are handed out one at a time to the leading slides. A 3,199 px strip in 3 slides becomes 1,067 + 1,066 + 1,066. The columns are consecutive, so each slide starts on exactly the pixel after the previous one ended. No column is counted twice and none is skipped.
Step 3: scale each slide to the output size. Each column is drawn onto a canvas at the full preset size, 1080 x 1350 for portrait, using the browser's canvas drawImage operation defined in the WHATWG HTML standard, with high-quality image smoothing.
Why not round each slide's position independently? Because fractional boundaries drift. If a strip is 3,201 px wide and 4 slides are computed as 800.25 px each, rounding each start and width on its own can put one slide's right edge a pixel past the next slide's left edge. Spreading the remainder across the leading slides keeps every boundary an integer and every slide within one source pixel of the others. In the 1,067 versus 1,066 case, that one extra source pixel changes the horizontal scale of the output by less than 0.1%, which is not visible.
A worked example with real pixel counts
Take a 4000 x 1333 panorama, an aspect ratio of 3.0008, and choose portrait slides.
The suggested count. 3.0008 / 0.8 = 3.751, which rounds to 4 slides.
The strip for 4 slides. The strip ratio is 3.2, and the image ratio of 3.0008 is less than that, so the image is relatively taller than the strip. The tool keeps the full 4000 px width and trims height: 4000 / 3.2 = 1,250 px. That removes 83 px, about 41.5 px from the top and 41.5 px from the bottom.
The slides. 4000 / 4 = 1,000 px each with no remainder, so four slices of 1000 x 1250, each scaled up by 1.08 to 1080 x 1350.
4000 x 1333 panorama, portrait, 4 slides
strip: x 0-4000, y 41.5-1291.5 (4000 x 1250)
slide 1: columns 0-999 -> 1080 x 1350
slide 2: columns 1000-1999 -> 1080 x 1350
slide 3: columns 2000-2999 -> 1080 x 1350
slide 4: columns 3000-3999 -> 1080 x 1350
Choosing 3 slides instead. Drag the slider to 3 and the strip ratio drops to 2.4. Now the image is wider than the strip, so the tool keeps the full 1,333 px height and trims width: 1,333 x 2.4 = 3,199.2 px, rounded to 3,199. About 400 px comes off each side. Split into 3, that is 1,067 + 1,066 + 1,066 px, so the first slide gets the one leftover pixel.
Pushing it too far. At 6 slides the strip ratio would be 0.8 x 6 = 4.8, far wider than the image. The generator shows a warning when the image's ratio falls below 75% of the strip ratio. For this image, 0.8 x 6 x 0.75 = 3.6, and 3.0 is less than 3.6, so the page says: "This image is not wide enough for 6 slides at that shape, so each slide will be cropped hard top and bottom." At 5 slides the threshold is 3.0 and the image just clears it.
A second example shows a panorama that fits exactly. A 6000 x 1500 image is 4:1. In portrait slides the suggestion is 4 / 0.8 = 5, the strip ratio is 5 x 0.8 = 4.0, and nothing is trimmed at all: five slices of 1200 x 1500, each scaled down by 0.9 to 1080 x 1350. Switch to square slides and the suggestion is 4, again with no trim: four slices of 1500 x 1500, scaled to 1080 x 1080.
How do you make the carousel step by step?
- Add the panorama. Open the Instagram carousel splitter and drop an image, click to browse, or paste one from the clipboard. Any image the browser can decode works, which in practice means PNG, JPEG, WebP, GIF and AVIF.
- Pick the slide shape. Portrait 4:5 is the default. The note under the picker restates what the shape is for.
- Check the slide count. Accept the suggestion or move the slider. The preview strip redraws immediately, and the header shows the output, for example "4 x 1080x1350".
- Choose a format and download. Press "Download all 4 as a zip" for the whole set, or use the "Slide 1", "Slide 2" buttons to save single slides.
Files are named from your original file name with a zero-padded number: harbor.jpg becomes harbor-01.jpeg, harbor-02.jpeg and so on inside harbor-carousel.zip. The padding keeps the slides in swipe order in any file manager, which matters when you select them all on your phone. The zip library loads only when you press the zip button, so the page itself stays light.
Upload the slides to Instagram in number order as a single carousel post. Posting them out of order is the most common way a correct set of slides ends up looking broken.
Should you export JPEG, PNG or WebP?
JPEG is the default and the right choice for photographs. Instagram re-encodes uploads as JPEG anyway, so a lossless file buys a larger upload and nothing visible at the end. JPEG compression is defined in ITU-T Recommendation T.81, and the generator encodes at a quality of 0.92.
PNG is lossless, specified by the W3C PNG recommendation, and suits panoramas that are illustrations, diagrams or contain text, where JPEG artifacts around hard edges would show before Instagram's own compression adds more.
WebP gives the smallest files at similar quality and also uses 0.92 for its lossy encoding. It is a sensible choice for slides headed somewhere other than Instagram, such as a website gallery.
If you need the slides in another format afterwards, or a folder of them converted in bulk, the guide to image format conversion covers what changes between JPG, PNG and WebP and when each is worth it.
Will splitting lower the image quality?
Cutting does not; scaling can. Each slide is taken from the source at full resolution and then scaled to 1080 px wide.
When a slice is wider than 1080 px, as in the 6000 x 1500 example where each slice is 1200 px, the slide is scaled down, which loses no visible detail. When a slice is narrower than 1080 px, the slide is scaled up and will look softer. The 4000 x 1333 image in 4 portrait slides gives 1000 px slices, a mild 1.08x enlargement. A 2000 px wide image split into 5 slides gives 400 px slices, enlarged 2.7x, and will look soft on a phone.
A rule of thumb follows from the arithmetic: for crisp slides, the source should be at least 1080 px wide per slide, so 4,320 px for 4 slides and 5,400 px for 5. If a panorama is smaller than that, fewer slides will look sharper. For more on why enlarging cannot add detail, see the guide on resizing images without losing quality, which walks through downscaling, upscaling and resampling.
What causes a visible seam, and how do you fix it?
Most seams come from one of five causes, and the generator removes the first two.
| Symptom | Likely cause | Fix |
|---|---|---|
| A thin repeated or missing strip at a join | Fractional slice boundaries rounded independently | Use whole-pixel slicing, as the generator does |
| The last slide looks stretched or cut short | Remainder pixels dumped on one slide | Spread the remainder across the leading slides |
| Slides out of sequence | Uploaded in the wrong order | Post in file number order, 01 first |
| One slide cropped differently from the rest | Mixed aspect ratios in one post | Export every slide in the same shape |
| Subject cut through the middle of a face or sign | Slide boundary lands on the subject | Change the slide count so a boundary moves |
The last row is a composition problem, not a technical one. With 4 slides, boundaries sit at 25%, 50% and 75% of the strip; with 3 slides, at 33% and 67%. If a person's face lands exactly on a join, one slide more or fewer usually moves the cut somewhere harmless. Faces and text on a join survive the swipe but look awkward whenever a viewer stops on a single slide.
What are the limits of the tool?
The slider runs from 2 to 10 slides. Instagram allows more, but past ten a typical panorama no longer has enough width to give each slide real detail, and each slide becomes a narrow strip that stops reading as a picture.
The crop is always centered. If the important part of the panorama sits near the top or bottom edge and the chosen count trims height, change the count or crop the source first with the social media image cropper, which lets you choose the focal point.
The input has to be a file the browser identifies as an image and can decode. A file that is not an image is refused with a message naming it, and a corrupt image or one in a format the browser cannot read gets "That image could not be read." HEIC photos from an iPhone are not decoded by most browsers, so convert them first.
Like every tool on the site, downloads count toward a daily usage limit. There is no watermark and no account needed.
Is the panorama uploaded anywhere?
No. The image is decoded, cropped, sliced and encoded on an HTML canvas in your browser, and the zip is assembled locally. Nothing is sent to a server, stored or logged, and the page keeps working with the network disconnected once it has loaded. That matters for unreleased product shots or client work you have not published yet.
Related tools for carousel posts
The scroll generator sits alongside a handful of other image tools built for social posts, all of them client-side.
The social media image cropper crops a single image to fifteen platform sizes with a nine-point focal grid. The matte generator puts a non-square image on a square or portrait matte so the whole picture survives the feed, which suits a cover post that shows the full panorama small before the carousel. The photo card generator builds quote cards and news-style graphics from templates, and the watermarker adds a logo or signature watermark, in a corner or tiled, before you post. Every tool in the set is listed on the social image tools hub.



