Last updated 4 September 2026
What happens to your files
Nothing leaves your device. When you add an image, it is read by JavaScript running in your own browser tab, decoded and re-encoded by WebAssembly modules running in that same tab, and handed back to you as a download. At no point is it transmitted.
This is not a promise about how we handle uploads — it is a statement that there are no uploads. The site is a set of static files with no server-side component and no API to receive an image even if it wanted to.
How to verify it
You do not have to take our word for any of this, and you should not have to. Two ways to check:
- Open your browser's developer tools, switch to the Network tab, and convert a file. The encoder and its WebAssembly module load from this domain the first time you convert. The only other requests you will see are the analytics pings described below, and you can read exactly what each one carries: a handful of numbers, never your image.
- Load the page, disconnect from the internet, then convert an image. It works. Software that was uploading your files could not.
Metadata
Photographs carry more than pixels. EXIF metadata routinely includes the camera model, the exact time the shot was taken and, on phones, GPS coordinates precise enough to identify a home address.
By default we strip all of it from the output. Orientation is applied to the pixels first, so images stay the right way up. If you need the metadata preserved, there is a setting for it under Advanced.
What we store on your device
Your light or dark theme preference, in your browser's localStorage. It never leaves your device.
Google Analytics also sets its own cookies (_ga and similar) to tell one visit apart from the next. Clearing your cookies
removes them.
Analytics
We use Google Analytics to see whether the tool is actually working for people — which conversions get used, and where they fail. That is a third-party script, and it is the one exception to everything else on this page: Google learns that a browser visited this site, along with the usual coarse signals it collects everywhere (approximate location from your IP address, device type, referring page).
Alongside page views, we record a small set of events when you convert: how many files were added, which formats went in and out, the quality preset, the size before and after in kilobytes, how long the conversion took, whether it succeeded or failed, and whether you downloaded the result. Failures include the error message the converter produced.
What those events deliberately never include is anything drawn from the image itself: no filename, no dimensions of a specific photo, no metadata, and no pixels. Only counts, formats and totals are sent. Your file cannot be reconstructed or identified from any of it — the analytics code has no access to the image data in the first place.
If you would rather not be counted, any content blocker that stops
googletagmanager.com will stop
all of it, and the converter goes on working exactly as before. We do not
detect blockers and we do not route analytics through our own domain to
get around them.
Fonts and assets
Every asset — fonts included — is served from this domain. There are no Google Fonts requests, no CDN calls and no embeds beyond the analytics script above, so nothing else about your visit reaches an outside party.