Privacy
The short version: your photograph is opened by the tab you are reading this in, drawn on a canvas by the tab, and saved by the tab. The photo you open here is read by this tab and nowhere else — there is no server behind this page to send it to. Visits to expandpictures.com are counted, without a cookie, by Cloudflare Web Analytics — and that counter never sees your picture. There is no advertising on this site.
What happens to a photo you open
When you drop, choose or paste a picture, the browser hands this page a reference to the bytes on your own disk or clipboard. Those bytes are decoded into an image the page can draw, measured, and painted onto a canvas element. When you press save, the canvas is encoded into a JPG, PNG or WebP and passed to your browser's own download machinery.
No step in that sequence involves a network request carrying your picture.
There is nowhere for it to go. This is a set of static files — HTML, CSS and JavaScript — served from a content network. It has no server-side code, no upload endpoint and no database. A file closed or a tab refreshed takes the working copy with it; no draft of your picture is kept anywhere, including in your own browser.
The files this page can fetch
This is the complete list of requests your browser can make from this site. None of them contains your photograph, its name, its size or whether you saved it, because there is no code here that could put one of those things into a request.
| Request | When | Carries |
|---|---|---|
| The page itself: HTML, scripts, styles, fonts and icons, from this domain | When a page loads | Nothing about your picture |
| The HEIC decoder, from this domain | The first time you open a HEIC file | Nothing about your picture |
| The model runtime, 13.3 MB — or 24.6 MB for the WebGPU build where your browser offers WebGPU — from this domain | Only when you press the model download control | Nothing about your picture |
| The model weights, 26,639,447 bytes, from our model file server | The same press, once; then they come from your browser's cache | Nothing about your picture |
| The Cloudflare Web Analytics beacon | When a page loads on expandpictures.com (never on a preview copy or on localhost) | The page address, the referrer, and coarse device and country data; no cookie |
| The contact form submission, to Google Forms | Only when you press Send on the contact page | What you typed, and this site's name |
The model deserves a sentence of its own. It is not on by default, nothing is fetched until you press a control that states the size first, and pressing it makes one request to our model file server for the weights — MI-GAN, MIT (code and weights), 26,639,447 bytes, which is 25.4 MB — plus the 13.3 MB runtime from this domain (the 24.6 MB WebGPU build instead, where your browser offers WebGPU; if that build does not start, the smaller one is fetched and used). That request carries what any request for a file carries: your IP address and the headers a browser sends. The inference then runs on your own processor, in this tab. If our model file server does not answer, the panel says so and the seven other fills carry on exactly as before.
Metadata
A JPG from a camera or a phone usually carries an Exif block: shutter speed, lens, the date, and frequently the exact coordinates where you were standing. Canvas encoding discards all of it, so by default the file you save is clean — which is the right default for a picture going onto the internet.
The Export panel has a switch that keeps it, for the cases where you want the camera information preserved. Turning it on lifts the original block out of your file and splices it into the new one, with the rotation tag reset to upright because the pixels already are. That happens on your device like everything else.
Whether anything is counting you
Yes, visits are counted, and this is how. Pages served from expandpictures.com load Cloudflare Web Analytics, a cookieless counter. It records the address of the page you are on, the page that sent you here if there was one, and a coarse idea of your device, browser and country. It sets no cookie, keeps no identifier that follows you between visits or between sites, and the beacon is not loaded at all on a preview copy of this site or on a computer running it locally.
What it never sees is your picture: not its name, not its size, not its format, not the shape you asked for, not the fill you chose and not whether you saved it. The tool has no line to the counter, and no custom events are sent. One exception you control: the Export panel can copy a link that reopens your settings, and those settings — numbers and fill names, never the photo or its name — sit in that link’s address. If you open such a link, the address the counter records includes them.
The contact page
One page here can send something, and only when you tell it to. On the contact page, pressing Send posts the name, email address and message you typed, together with the name of this site, to a Google Form that the people behind ExpandPictures read. Nothing is sent as you type, no Google script, font or frame is loaded by that page beforehand, and no other page on this site talks to Google. A photograph cannot be attached to it.
What is stored on your device
Two things, and never a photograph. The edge model, only if you asked for it: after a complete, checksummed download the weights are kept in this browser’s cache (a bucket called ep-edge-model-v1), so a second run requests nothing and works offline. And a handful of remembered settings in this browser’s local storage, so the tool opens the way you left it: the last export format and quality, the last ratio you typed, the last KB band and whether the crop outline is shown. Never image data, a file name or a picture’s dimensions, and none of it is sent anywhere. No cookie is set.
One control deletes both — here, and at the foot of the Generate panel in the tool — and reports what it deleted and how much.
Advertising
There is no advertising on this site. No ad script is loaded and no ad network sees any page here.
Children, changes and getting in touch
This site is not aimed at children, and none of its tools asks anybody for personal details. If this policy changes, the changed version replaces this page — there is no mailing list to notify. Questions about what happens here can be sent from the contact page, which is described above.