A card of 300 frames
Shoot a roll, copy it into a folder, select all of it. The queue works through the files one at a time in a worker, so the tab stays usable while the batch runs.
Browser tool · 6 modes · 0 uploads
An inverter is the noun for the verb: point it at a photo, or at a folder, and every pixel comes back as its complement.
The bytes stay in the tab. Clear the network panel, then invert a photo: no request appears, because the work happens in page memory.
No 2 MP preview cap, no server-side resize. A 48 MP frame comes back at 48 MP.
Whole image, a single channel, skin-safe, or dialled back to any strength between 0 and 100%.
About
"Inverter" is what people call the thing that inverts. Underneath the name there is one subtraction per channel, out = 255 − in, which is why the same tool is sold as a negative filter, an invert-colors button, a colour inverter and a photo negative maker without any of them being a different operation. What changes between them is everything around the operation: how many files it takes at once, whether it keeps the alpha channel, whether the resolution survives, and whether the file goes anywhere at all.
This page is the batch end of the site. The single-file tool is on the home page; here the case for an inverter is a card with 300 frames on it and one question — does the queue finish before you do. That depends on the worker, the format you ask for, and whether the files stay local, so the comparison below puts this tool against the four other ways people invert a picture, including the parts where the alternatives are better.
Specification
| Input formats | JPG, PNG, WebP, GIF (first frame), BMP, AVIF where the browser decodes it |
|---|---|
| Maximum size | No fixed cap. Tested to 8000 × 6000 (48 MP) on a machine with 8 GB of RAM |
| Speed | 1920 × 1080 in well under a second; 48 MP in about four seconds |
| Transparency | Alpha is never touched. PNG output keeps it, JPG output is flattened onto white |
| Output | PNG (lossless, alpha preserved) or JPG at quality 0.92 |
| Uploads | None. The file is read with the File API and drawn to a canvas that never leaves the page |
Modes
| Mode | What it does | When to use it |
|---|---|---|
| Full invert | 255 − value on R, G and B | A true negative. Also the base layer for duotone and print work. |
| Red channel only | R inverted, G and B untouched | Pushes the whole image toward cyan-green. One plate of a two-colour screen print. |
| Green channel only | G inverted, R and B untouched | Magenta shift. Good for testing how a muted palette reads in print. |
| Blue channel only | B inverted, R and G untouched | Yellow shift. Useful for warm/cool split toning without a curve tool. |
| Smart invert (keeps skin) | Skips pixels inside the skin-tone range | Portraits. Faces stay recognisable while the background turns into a negative. |
| Intensity 0–100% | Blends the negative with the original | Anything that needs a hint of the effect rather than a full inversion. |
Method
Drop a single photo and it opens straight into the preview. Drop a selection of many and the first one opens while the rest line up in the queue, each with its own status and its own download button.
The mode and the intensity apply to the whole queue. Changing either re-runs the files that had already finished instead of exporting stale ones, which matters when a batch of 200 is half done and the red channel turns out to be the wrong call.
Every finished file keeps its own download button, and the ZIP button packs everything that is ready into one archive. The archive is written in the browser with stored entries, so nothing is decoded, re-encoded or uploaded on the way out.
Use cases
Shoot a roll, copy it into a folder, select all of it. The queue works through the files one at a time in a worker, so the tab stays usable while the batch runs.
A folder of scanned negative strips becomes a folder of positives at the resolution the scanner produced, without a save dialog per file in an editor.
A dark product shot on a light listing background: invert it, check that the edges still read, and export as JPG for the upload rather than re-shooting the product.
A two-colour job needs the same frame twice, once with red inverted and once with blue. The mode is per batch, so run the folder twice rather than clicking through files.
One subtraction per channel is small enough to do by hand on a 3 × 3 grid, then check against the tool. The result is exact, which makes it a fair test of whether the rule was understood.
Invert a whole screen of a design draft, not one frame: the pages that collapse in the negative are the ones whose contrast was being carried by the background.
Comparison
Five ways to invert a picture, compared on the three things that decide whether the job is pleasant: resolution, how many files it takes at once, and whether the file leaves the machine.
| Method | How it works | Where it breaks |
|---|---|---|
| This page | 255 − x per channel on a canvas, inside a worker | Nothing for the cases above; it will not touch animation or video |
| Desktop editor | A non-destructive adjustment layer | Correct and precise, but a minute per file and a save dialog each time |
| Phone photo app | A filter baked into the camera-roll edit | Works at preview size, then re-encodes the whole frame |
| Server-side converter | Upload, convert, download a link | The file leaves the device, and the queue decides when it comes back |
| CSS filter: invert(1) | One line applied by the compositor | Inverts the whole element with its text and borders, and cannot be saved as a file |
Under the hood
Every 8-bit channel is an integer from 0 to 255, and 255 − x maps that range onto itself with no rounding at all: 255 − (255 − x) = x for all 256 values. A canvas therefore returns bit-identical pixels, and a PNG round trip through this page loses nothing. The single asymmetry is at 128, whose complement is 127 — mid-grey is the one value that does not map to itself, and the one-step shift is visible only when the two greys are placed side by side.
Editors and camera apps perform the same subtraction, but usually through a float pipeline in a wider colour space and then back into 8 bits on export. That conversion can move a channel by a step or two, and a JPG adds its own loss on top. The operation is identical; the fidelity is not. If an inverted frame is going back into a retouch that will be saved again, keep it as PNG until the last step.
Questions
For a photograph, yes: the negative is what you get when every channel is subtracted from 255. The difference is packaging. A film negative is a physical object with an orange mask; an inverter is the arithmetic, which is why the output here is only the arithmetic.
No. Only tone changes. The frame, the crop and the orientation are untouched, because rotation and reflection move pixels while this tool only rewrites their values.
Select the files inside the folder, or drop the selection onto the panel. A page cannot read a directory on its own, so the folder has to be selected rather than pointed at, and subfolders are not followed.
The decode and the pixel loop run in a Web Worker, one file at a time, and only the finished result is handed back for preview. Scrolling and typing keep working, though a very large batch will still use most of one core.
No. The first frame is decoded and inverted, and the output is a still PNG or JPG. Frame-by-frame GIF work needs a different tool and a much larger buffer.
Not yet. A server-side endpoint would mean the image leaving the device, which is the trade this site exists to avoid. If one ships it will be a separate product, and the browser tool will stay as it is.
If there is only ever one picture, the home page is the shorter path: drop, pick a mode, download. This page exists for the folder case — same engine, a queue on top.
Full resolution, all six modes, batch and ZIP. If a page ever asks you to register to invert an image, it is not this one.
Keep going