Privacy: your images never leave your device

Every tool on this site runs inside your browser tab. There is no server that receives files — so there is nothing to upload to, store, or delete. You don’t have to take our word for it: the steps below let you check.

What happens to your image

  1. You choose, drop or paste an image. The browser reads it into the tab’s memory.
  2. The browser decodes it (HEIC files are decoded by libheif, compiled to WebAssembly and served from this site).
  3. The pixels are re-encoded with the browser’s built-in canvas encoder until the result fits your target size.
  4. The result is offered as a local blob: download link. The link is released when you process another image or leave the page.

What we never do

  • Upload, POST or otherwise transmit your image or any part of it.
  • Store images, thumbnails or file names on a server — this site is static files only, with no file-receiving API.
  • Set cookies, fingerprint you, or require an account.
  • Copy EXIF metadata (such as GPS location) into the output: outputs are created from pixels only.

Analytics

We use Cloudflare Web Analytics to count page views. It is cookieless and does not use local storage. Its script is loaded from static.cloudflareinsights.com. Per page view it sends a small beacon (under 1 KB) with the page address, referrer, browser type and loading-performance timings to /cdn-cgi/rum on this site, an endpoint handled by Cloudflare’s network rather than by any server of ours. Cloudflare reports these to us only as aggregated statistics. The beacon is sent by Cloudflare’s script, which never sees your image: the image only exists inside the tool’s memory and is never put into any request.

How to verify it yourself

Method 1 — watch the network

  1. Open this site in Chrome, Edge or Firefox on a computer.
  2. Press F12 (or ⌘+⌥+I on a Mac) and open the Network tab.
  3. Click the “clear” button so the list is empty, and tick “Preserve log”.
  4. Drop an image into the tool and wait for the result.
  5. Look at the list: you will see the page’s own files (on the HEIC page, the decoder files, once), the analytics script fromstatic.cloudflareinsights.com, and the analytics beacon: a POST to /cdn-cgi/rum of under 1 KB, sent around page load and when you leave the page, whether or not you used the tool. You will not see any request whose size is close to your image, and nothing new is sent when you drop, compress or download an image. Add the “Method” and “Size” columns (right-click the column header) to make this easy to check.

Method 2 — go offline

  1. Open the tool page and let it finish loading. On the HEIC page, convert one photo first so the decoder is loaded.
  2. Disconnect from the internet (airplane mode, or DevTools → Network → “Offline”).
  3. Compress another image. It still works — because nothing needs a server.

Method 3 — the browser enforces it

The site is served with a Content-Security-Policy header whose connect-src allows only this site and Cloudflare’s analytics domainhttps://cloudflareinsights.com, plus form-action 'none'. Your browser therefore blocks script connections to any other origin and refuses form submissions. You can see the header in the Network tab: click the page request and look under “Response Headers”.

Open-source components

HEIC decoding uses libheif vialibheif-js 1.23.5, licensed LGPL-3.0(full license text). It is loaded as a separate, unmodified file only on the HEIC page.

简体中文摘要

本站所有工具都在你的浏览器标签页内运行,没有任何接收文件的服务器,图片不会上传、不会被存储。输出文件只由像素重新编码生成,不会带上 GPS 等 EXIF 信息。本站不使用 Cookie。我们使用无 Cookie 的 Cloudflare Web Analytics 统计页面访问量,它只向本站的 /cdn-cgi/rum(由 Cloudflare 网络处理)发送页面地址、来源、浏览器类型和加载性能数据,每次小于 1 KB,不包含任何图片内容。

自行验证:按 F12 打开开发者工具的 Network(网络)面板,清空记录后拖入图片,除了统计脚本(来自 static.cloudflareinsights.com)和发往本站 /cdn-cgi/rum 的统计请求(小于 1 KB,与是否使用工具无关)之外,处理图片时不会产生任何新请求,也不会出现与图片大小相近的请求。也可以在页面加载完成后断网(飞行模式),再压缩图片,依然可以正常工作。