


About
About this site
One transform, done carefully, with the edges written down.
What it is
FlipPicture reflects a picture across the upright axis, the horizontal axis or both, and builds a symmetrical frame from one half. That is the entire product. There is no account, no queue, no gallery and no upload; the file is decoded by the browser, redrawn onto a canvas, and handed back as a download.
The narrowness is deliberate rather than a stage on the way to something larger. A reflection has a small number of parameters and a surprising number of ways to be got subtly wrong — orientation flags that are themselves mirrored, a re-encode that costs quality the transform did not, a preview that does not match the export — and a page that only has to get one operation right can afford to get those details right.
What it will not do
It turns pictures only in the quarter steps that combine with a reflection — the eight orientations a rectangle can take — and never by an arbitrary angle. It does not crop, straighten against a reference, or repair an orientation flag as a feature in its own right. Its effects stay inside the mirror: a reflection cast off one edge, symmetry built from a half or a quarter, and the original beside its own mirror in one file. It does not blend layers or reverse a text layer; each of those is a different product.
The rule the whole site is built on is that a feature does not get added because the engine happens to make it cheap. A reflection tool with six unrelated buttons on it is worse at reflecting than one without them.
How it is built
A statically exported Next.js site on a content delivery network, with no server behind it and no interface that could accept a file if one were offered. The image work is a canvas transform, a small orientation reader, an encoder call and a byte-level metadata copier, all of it running in the tab. Heavier pieces — the HEIC decoder in particular — are fetched only at the moment a file needs them, so opening the page does not download a codec on the chance you might.
The build refuses to ship if any module that touches an image buffer contains a network call, if a colour is written outside the token file, or if the promise about local processing is missing from a page. Those are automated checks rather than intentions, because an intention is not a guarantee.
What it costs
Nothing to use, and there is no account or paid tier behind it.
Elsewhere on this site
- The tool
One axis, both, or one half onto the other.
- Privacy
What the site can see, in plain terms.
- Terms
The terms this site is offered under.
- Mirrored or turned
The distinction the scope rests on.