Invert Image Colors

Drop images, choose whether to keep transparency, and download the inverted copies — processed on your device, never uploaded.

  • Free
  • No account
  • Runs in your browser
  • Nothing uploaded
Invert Image ColorsNothing uploaded

Runs entirely in your browser — your input is never uploaded, logged, or stored.Privacy policy

What is Invert Image Colors?

This tool inverts an image's colors — the photographic negative — directly in your browser. Every visible pixel's color is replaced by its opposite: black becomes white, red becomes cyan, dark becomes light and light becomes dark. It is for making a negative, turning a dark scan or a white-on-black logo into a printable black-on-white version, checking how a design looks in the opposite theme, or just making an inverted picture. The file is never uploaded to a server.

Keeping transparency is the default. Only the pixels you can see are inverted: a pixel with any opacity has its red, green and blue values flipped, while a fully transparent pixel is left exactly as it was, so a PNG's transparent background stays transparent and nothing hidden behind it changes. Turn "Keep transparency" off for a full invert of every pixel, including the hidden red, green and blue stored under fully transparent areas. In both cases the alpha channel — the transparency itself — is never touched. That is deliberate: inverting the alpha channel is the bug that makes transparent areas turn solid, and it is why the pixels are rewritten here in JavaScript rather than with the canvas filter feature, so the result is the same in every browser.

The result is saved in the format you choose. PNG output is lossless — the inverted pixels are encoded without further compression loss, so for an ordinary opaque image the result is an exact negative. The pixels are rebuilt on a canvas first, so a photo's hidden colour under fully transparent areas is discarded and semi-transparent pixels can shift by a step. JPG and WebP cannot be lossless — the image is decoded, inverted and re-encoded — so the saved file is re-compressed at the quality you set (92 by default) and is no longer an exact inverse. JPG has no transparency at all, so when you save as JPG any transparent areas are filled with the background color you pick (white by default); that background is painted after the inversion, so it is saved as the color you chose rather than its negative. With "Same as input", PNG, JPG and WebP keep their format; GIF, BMP and AVIF cannot be re-encoded by a browser canvas, so those are saved as PNG, and an animated file keeps only its first frame.

How it works: your browser decodes each image (a phone photo is turned upright using its EXIF orientation), draws it onto a canvas at full size, and this tool rewrites the red, green and blue values of every pixel in JavaScript on the raw pixel data — 255 minus each channel. The canvas is then re-encoded and offered as a download. Because the picture is redrawn on a canvas, EXIF metadata — camera, date and GPS location — is not copied into the result, which is a privacy gain in itself.

Limits: up to 50 images at a time, 50 MB each, and about 100 megapixels (16,384 px per side). iPhones and iPads allow a canvas of only about 16.7 megapixels, so a very large photo may fail there with a message saying so. Your images stay on your device: the Network tab in your browser's developer tools shows no request carrying them.

1. The file's size is checked (50 MB) before it is read, and its first bytes confirm it is PNG, JPG, WebP, GIF, BMP or AVIF; the browser decodes it upright. 2. The image is drawn onto a canvas at full size and its RGBA pixels are read. 3. Each pixel's red, green and blue values are replaced by their inverse: R → 255 − R, G → 255 − G, B → 255 − B. 4. The alpha channel is never changed. With "Keep transparency" on, a pixel whose alpha is 0 is skipped entirely; with it off, every pixel is inverted, including the hidden color under full transparency. 5. For JPG output only, the pixels are then composited onto the chosen background color (white by default) and made fully opaque, because JPG cannot store transparency. The background is applied after the inversion, so it is not inverted. 6. The pixels are written back, the canvas is encoded, and the file is named like photo-inverted.jpg or logo-inverted.png.

Invert and grayscale compared
 What it does to each pixelFormulaWhat the result looks like
Invert (negative)Replaces each color channel with its oppositeR, G, B → 255 − R, 255 − G, 255 − BA photographic negative — dark becomes light, and colors become their complements
GrayscaleTurns color into one brightness value per pixelGrey = 0.2126 R + 0.7152 G + 0.0722 BBlack and white — the color information is thrown away
Invert, then grayscaleA negative in shades of greyBoth of the above, in that orderA black-and-white negative — neither tool on its own gives this

Worked examples

  • Pure black (0, 0, 0, 255) inverts to pure white (255, 255, 255, 255).
  • A mid grey (128, 128, 128, 255) becomes (127, 127, 127, 255) — 255 − 128 = 127, so exact mid-grey never comes back as itself.
  • Orange (255, 128, 0, 255) becomes (0, 127, 255, 255): each channel is flipped on its own.
  • A fully transparent pixel (10, 20, 30, 0) is left exactly as it is when transparency is kept; with "Keep transparency" off it becomes (245, 235, 225, 0) — still invisible, and still transparent.
  • A semi-transparent pixel (0, 0, 0, 40) becomes (255, 255, 255, 40): the color flips, the opacity does not.
  • photo.jpg saved as PNG becomes photo-inverted.png; logo.png saved as JPG with a white background becomes logo-inverted.jpg, with every transparent area filled with white.

How to use Invert Image Colors

  1. Click "Choose images", drop files on the box, or paste a screenshot with Ctrl+V (Cmd+V on a Mac).
  2. Leave "Keep transparency" ticked to invert only the visible pixels; clear it for a full invert of every pixel.
  3. Choose the output under "Save as" — Same as input, PNG (lossless), JPG or WebP — and set the quality for JPG or WebP.
  4. Click "Invert colors", then download each image or all of them as a ZIP.

Common errors

  • "IMG_0042.HEIC" is actually a HEIC file, not PNG, JPG, WebP, GIF, BMP or AVIF. The extension does not match the contents — use a HEIC tool for this file. — convert HEIC photos to JPG first.
  • "IMG_1234.jpg" is 62.40 MB, over the 50.00 MB limit for this tool. Everything runs in your browser's memory, so very large files can crash the tab. — resize or compress the file first.
  • "Quality must be between 1 and 100." — drag the slider; it only appears for JPG and WebP output, where re-compression actually uses it.
  • "The output would be 20000 × 12000 pixels — more than a browser can safely draw (100 megapixels, 16,384 px per side). Choose a smaller size." — resize the image smaller first.
  • "Your browser could not encode an image this large (20000 × 12000). Try a desktop browser, or resize it smaller first." — iPhones and iPads allow a canvas of only about 16.7 megapixels, so very large photos can fail there.
  • "Your browser could not read the image pixels. Try closing other tabs and retry." — the browser ran out of memory for this image; close other tabs, or try a smaller image.

FAQ

How do I invert an image's colors?

Drop the image in and click "Invert colors". Every visible pixel's color is replaced by its opposite — black becomes white, red becomes cyan — and the result is offered as a download. The image is converted in your browser and never uploaded.

What does "Keep transparency" do?

With it ticked (the default), only the pixels you can see are inverted and a fully transparent pixel is left exactly as it was, so a transparent PNG background stays transparent. Clear it for a full invert of every pixel, including the hidden color stored under fully transparent areas. In both cases the alpha channel itself is never changed.

Does inverting an image lose quality?

Not for an ordinary opaque image if you save as PNG — the inverted pixels are encoded without further loss, so the result is an exact negative. (The pixels are rebuilt on a canvas, so hidden colour under fully transparent areas is discarded and semi-transparent pixels can shift by a step.) JPG and WebP cannot be lossless: the image is re-encoded at the quality you choose, so those are a very close but not byte-exact inverse.

Does inverting an image remove metadata like GPS location?

Yes. The image is redrawn on a canvas and re-encoded, so EXIF metadata — including any GPS location and the camera model — is not carried into the saved file.

Can I invert several images at once?

Yes, up to 50 in one go. Add them all, set the options, and download each result or everything together as a ZIP.

How do I invert just part of an image?

This tool inverts the whole picture. To invert one area and leave the rest, select that area in a layered editor and invert the selection there — a browser tool that only rewrites pixels cannot keep the rest of the image untouched.

What is the difference between inverting and grayscale?

Inverting flips each color channel to its opposite, so the image keeps all its color — it just becomes a negative. Grayscale throws the color away and keeps only brightness. Invert an image and then grayscale it and you get a black-and-white negative.

Does it work on iPhone and Android?

Yes. iPhones and iPads limit a canvas to about 16.7 megapixels, so a very large photo may fail there; the tool tells you when that happens, and a desktop browser or a smaller image always works.

G

Prefer AllUtil on Google

One click adds AllUtil to your Google preferences. You'll see our tools highlighted with a Preferred badge in Search and AI answers.

2× more likely to clickWorks in AI Overviews

Reviewed by unreviewed

Written by Hamza AK. We research, build and test every tool before it is published.

Editorial policy

Last updated

Rechecked against the sources on this date, not stamped.

Methodology

The negative is computed in JavaScript on the raw pixels — 255 minus each of red, green and blue — so the same file and settings give the same result in every browser, with no reliance on the canvas filter property (which inverts the alpha channel on some engines and is why transparency is handled by hand here). Alpha is never modified. Inverting is only lossless when the output is PNG; JPG and WebP are re-compressed at the quality you choose, and a JPG is composited onto the background color because it cannot store transparency. EXIF metadata and color profiles are not copied, and an animated GIF, WebP or AVIF keeps only its first frame. GIF, BMP and AVIF are saved as PNG under "Same as input", because browsers cannot reliably encode those formats from a canvas.