Privacy
The short version. No part of your picture is transmitted — not the pixels, not the EXIF block, not the filename. Besides its own code and fonts, the site loads one thing: a cookie-free Cloudflare Web Analytics counter on rotatepictures.com that records page views, never anything inside the tool. The one thing you ever send is a contact note, when you press send on it.
What happens to a file you open
Choosing a file, dragging one in or pasting one hands the browser a reference to something already on your disk. This site reads it into memory in the tab, decodes it, draws it on a canvas, and — when you press save — writes a new file and hands it to the browser’s own download machinery. Every one of those steps happens on the machine in front of you. At no point is there a request carrying picture data, because there is no address for such a request to go to: the whole site is a set of static files and there is no server component that could receive one.
Nothing is kept. The decoded picture lives in the tab’s memory until you open another file, navigate away or close the tab, and then it is gone. There is no browser storage of image data, no cache of anything you opened, no account, and no history of files. Reloading the page gives you the empty panel again, which is the honest consequence of not storing anything.
What is fetched, and from where
- The page itself, its stylesheet and its scripts, from this site’s own domain.
- Two typefaces, self-hosted here and subset, so that reading this page does not tell a font service that you are on it.
- Decoders and writers, each fetched only when it is needed: a TIFF decoder the first time you open a TIFF, a HEIC codec the first time you open a HEIC, and the EXIF writer the first time you save, plus the image worker that writes files and turns JPEGs without loss, the first time you save one. The ZIP builder is not fetched separately — it is a few kilobytes written here rather than a library, and it arrives with the batch page itself. Each is code, all of it comes from this site, and none of it is given a picture to send anywhere because none of them can send anything.
- The Cloudflare Web Analytics beacon, from
static.cloudflareinsights.com, and only when the page is served from rotatepictures.com itself. A small check in the page looks at the address first; on any other address — a preview copy, a local test — the beacon is never requested. What it records is in the section below. - Nothing else. There is no advertising script, no font service, no tag manager and no second analytics tool.
The contact page
The contact page is the one place this site sends anything anywhere. Pressing its send button posts the name, email address and message you typed, plus this site’s domain, to a Google Form, where Google keeps the response under its own terms. Nothing goes while you type or when the page opens, no picture or setting is ever included, and no other page talks to Google.
Measurement
This site counts visits with Cloudflare Web Analytics, under its own property. When a page opens on rotatepictures.com, the beacon reports that a page was viewed, which page it was, the referring address if there was one, an approximate country derived from the network, and the kind of browser and device. It sets no cookie, stores nothing in your browser and keeps no identifier that follows you from visit to visit or from this site to any other.
It cannot see anything that happens inside the tool. No file, file name, picture, angle, orientation value or save is ever reported — there are no custom events at all — because the tool does its work in the tab and never hands any of it to the counter. If you block the beacon with a content blocker, every tool works exactly the same. A check in the build fails if this paragraph and the page’s code ever stop agreeing.
Advertising
No advertising runs on this site. There is no ad script, no ad network cookie and no ad placement on any page.
Children, and the rest of the boilerplate
This site is not directed at children. Apart from a note you choose to send from the contact page, it collects no personal information from anyone: there is no login, no account and no upload, and the tools have no form and no email field. A contact note lives in the Google Form’s responses; ask through the same page to have one corrected or deleted. Nothing else is retained beyond the life of the tab.
If this policy changes, the change will be to this page and dated in the same breath. Last reviewed 19 October 2026.