Half a Pixel Is Why Your Carousel Looks Soft

13 September 2026 · 6 min read

Split a wide photo across four carousel slides and the arithmetic is the first thing that happens: width divided by four. On a 1170-pixel photo that is 292.5 pixels a slide, and half a pixel is not something a canvas can cut.

What it does instead is the interesting part, and it is worse than a crooked seam.

What a browser does with half a pixel

Asked for a 292.5-pixel slice, a canvas does not round to 292 and move on. It resamples — it rebuilds every pixel in the tile as a weighted average of the pixels around it, because the pixel grid it is being asked to produce no longer lines up with the one it was given.

That is easy to measure. Build a source of alternating one-pixel black and white stripes, cut one slice on a whole pixel and one at 292.5, and read the pixels back:

SlicePixels that came backEdge contrast
Whole pixel0, 255, 0, 255255 — exact
292.5111, 143, 111, 14332

Black and white came back as two greys eleven per cent apart. Two hundred and fifty-five steps of edge contrast became thirty-two — eighty-seven per cent of it, gone.

And it does not stop at the seam. The whole tile is rebuilt, so every fine detail inside it softens by the same amount. On stripes that is obvious. On a photograph you will not see anything so tidy; you will see a carousel that looks slightly blurrier than the picture you started with, with nothing on screen to tell you why.

The fix is arithmetic, not a sharpening filter

Nothing here needs to be corrected after the fact. The tile only has to land on whole pixels, and it can, if the width is made divisible before anything is cut.

Take the largest whole-pixel width that divides exactly by the number of slides, centre it, and cut there. Every slice then starts and ends on an integer, so nothing is resampled — and every slide comes out the same size, which a carousel needs anyway, because all of its slides share one aspect ratio.

The cost is a few pixels of width. Measured across five common phone widths:

Photo widthSlidesNaive sliceWhole-pixel slicePixels dropped
11704292.52922
108033603600
40323134413440
30245604.86044
12907184.291842

At most four pixels, and none at all on the two widths that already divide exactly. That is the entire trade: up to four pixels of width, against every pixel in every tile being rebuilt from its neighbours.

The general rule is that the loss is at most one less than the number of slides. Ten slides can cost you nine pixels of a photo several thousand wide.

The other thing that decides how much survives

Every slide in a carousel shares one aspect ratio. That single constraint decides how wide a strip you can use, because the strip is the slide ratio multiplied by the number of slides:

A 16:9 photo is 1.78:1. Against a 2.4:1 target it is not too narrow — it is too short, so the sides get cropped to make the proportion work. Against 3:1 it gets cropped harder. This is why portrait slides keep more of an ordinary photo than square ones do, which is the opposite of what most people guess.

What this means when you post

Try it

Our carousel splitter does the arithmetic above: it trims to a divisible width, cuts on whole pixels, and tells you exactly how many pixels it dropped and what each slide came out as. Everything happens in your browser — the photo is never uploaded.

If the photo is not the right width yet, the image resizer will get it there first, and the safe zone checker shows what the app itself will cover once you post.

FAQ

Why does half a pixel matter if I cannot see one?

Because the browser does not discard it — it rebuilds the whole tile around it. The measured cost on a hard edge was 255 steps of contrast down to 32, and that softening applies to every pixel in the slide, not to the seam alone.

Can I just sharpen the slides afterwards?

Sharpening puts contrast back at edges it can find; it cannot recover detail that was averaged away, and it adds halos of its own. Cutting on whole pixels costs a few pixels of width and needs no correction at all.

What width should I resize to before splitting?

Any multiple of the slide count. 1080 divides by three, four, five, six, eight and nine. 1200 divides by three, four, five, six, eight and ten. If you already know the count, the simplest rule is to round the width down to the nearest multiple.

Does this apply outside Instagram?

It applies anywhere a picture is cut into equal pieces, because it is a property of the canvas and not of the app. Carousels are where people notice it, because the slides sit next to each other and invite comparison.

Will the seams be genuinely invisible?

The pixels will line up exactly. Whether the join reads as invisible also depends on the feed, which may add a gap or a rounded corner between slides, and on the picture: detail across the seam hides it, flat colour and straight lines do not.