Half Your Profile Picture Ring Is Thrown Away

13 September 2026 · 6 min read

Every platform that shows a profile picture shows it as a circle. You upload a square and the app masks it. That mask is where the ring you designed goes to die, because a stroke sitting on the edge of the square is centred on the very line the mask cuts along.

Half of it lands outside the circle. Not roughly half — exactly half, at every size we measured.

What the crop does to a ring

This is easy to measure rather than argue about. Stroke a ring in a colour nothing else uses, apply the circular mask the platform will apply, and count how many of those pixels are still there along the horizontal centre line:

AvatarRing asked forRing that survives
400 px20 px10 px
400 px40 px20 px
1000 px60 px30 px

The reason is the one thing about canvas strokes that everyone knows and nobody applies here: a stroke is centred on its path. Give it a path at radius R — the edge of the image — and it extends W/2 inward and W/2 outward. The outward half is outside the circle, so the mask takes it.

What makes this worth writing about is not the arithmetic. It is that the result does not look broken. A ring at half its intended width looks like a thinner ring, which looks like a design decision. Nothing errors, nothing warns, nothing is missing. You just quietly ship something other than what you made, and if you try to fix it by eye you end up drawing a 40-pixel ring to get a 20-pixel one, without ever learning why.

The fix is one subtraction

Move the path inward by half the stroke width. Stroke at R − W/2 instead of R and the entire width falls inside the circle:

var R = size / 2;
var W = Math.round(size * ringPercent / 100);

ctx.lineWidth = W;
ctx.beginPath();
ctx.arc(R, R, R - W / 2, 0, Math.PI * 2);   // not R
ctx.stroke();

Measured the same way as before: 20 px asked for, 20 px surviving. 40 for 40. 60 for 60. One line, and the ring is the ring you drew.

The corners were never yours

The ring is the visible half of the problem. The invisible half is what the circle costs before you add anything at all.

A circle inscribed in a square covers π/4 of its area. Counting surviving pixels after a circular mask gives 21.46 % of the image gone — identical at 400 px and at 1000 px, because it is a ratio and not a pixel count, and 1 − π/4 is 21.46 % exactly.

So more than a fifth of every avatar ever uploaded has never been seen by anyone. Anything you care about — a face, a logo, a word of text — has to sit inside the inscribed circle or it is not in the picture. A logo cropped tight to its bounding box loses its corners every time.

How much of the photo a ring costs

Then the ring eats inward from what the circle left. A ring of width W on an avatar of size S leaves a photo S − 2W across, and area goes as the square:

AvatarRingPhoto leftPhoto hidden
400 px8 px384 px7.8 %
400 px20 px360 px19 %
400 px40 px320 px36 %
1000 px60 px880 px22.6 %

A 40-pixel ring on a 400-pixel avatar hides more than a third of the photograph. That is a real trade and worth making deliberately: a bold ring is a bold ring, but it is also a tighter crop on your face than you probably intended.

Why the width should be a percentage

Pick a ring in pixels and it only works at one export size. Twenty pixels is emphatic at 400 px and nearly invisible at 1500 px — the same number, a quarter of the relative width. Percentages survive the change; pixel counts do not, which is why an avatar that looked right when you made it looks wrong the day a platform starts serving a larger version.

Five per cent is a good default. It reads clearly at every size and costs 19 % of the photo, which is the most a ring should take from a face.

What to do when you post

Try it

Our profile picture ring maker does the subtraction above, and shows you a third preview drawn the usual way so you can see the difference rather than take our word for it. It reports the surviving ring width, the photo left inside it, and the 21.46 % the circle took. Everything happens in your browser — the photo is never uploaded.

If the photo is not square yet, the image resizer will get it there first, and the safe zone checker shows what an app covers once you post something else.

FAQ

Why does the ring only lose half and not all of it?

Because a canvas stroke is centred on its path. A path at the edge of the square puts half the stroke inside the circle and half outside, and the mask keeps the inside half. Move the path inward by half the stroke width and all of it is inside.

Does this happen on every platform?

On every platform that shows the avatar as a circle, which is nearly all of them now. The few places that show a square — some forums, some chat apps, and occasionally the large version on a profile page — show the full ring and the corners as well, which is the case for filling the corners rather than leaving them transparent.

Can I just draw the ring twice as thick to compensate?

It gets you the right visible width, and it also moves the ring inward over the photo by the amount you added, because only the inner half is ever shown. Insetting the stroke gives you the width you asked for in the place you asked for it.

Is 21.46 % really lost, or is that just the corners looking empty?

It is lost. The number is the area of the square minus the area of the inscribed circle, 1 − π/4, and counting surviving pixels after the mask returns the same figure at 400 px and at 1000 px. Nothing outside the circle is ever rendered.

What ring width should I use?

Five per cent of the avatar is a good default: clearly visible at every export size and costing 19 % of the photo. Go past about 8 % and you are cropping the face more than you are decorating it.