Skip to content

Menu

Try “png”, “smaller”, “gps” or “windows”

    How it works

    Your photos never leave your device

    Most converters upload your photos to a server, convert them there and send them back. We don't have a server that can even receive them. Here is what happens instead.

    Your device

    Everything happens here.

    1. 1photo.heic
    2. 2libheif decoder (WebAssembly)
    3. 3Canvas: rotate, crop, resize
    4. 4Encoder: JPG, PNG, WebP, AVIF or PDF
    5. 5photo.jpg in your Downloads

    Our servers

    They hand you the app, then step aside.

    • Send you this page and the decoder, once
    • Count anonymous visits (Google Analytics)
    • Receive your photos
    • Store, view or process your photos
    • See file names, locations or camera data

    01

    Your browser reads the file

    When you drop a photo, the browser hands the bytes to this page. There is no upload form and no server endpoint to send them to.

    02

    A HEIC decoder wakes up on your device

    We ship libheif, the same open source decoder used by GIMP and ImageMagick, compiled to WebAssembly. It runs in background workers on your own CPU.

    03

    Pixels are edited on a canvas

    Rotation, cropping, resizing and colour handling happen on an offscreen canvas. Several workers run in parallel, so batches stay fast.

    04

    The new file is saved by your browser

    JPG, PNG, WebP, AVIF, HEIC or PDF is encoded locally and handed straight to your Downloads folder. The original never leaves your machine.

    Don't trust us. Check.

    "No uploads" is easy to claim. Here are two ways to prove it in under a minute.

    Turn off your internet

    Open any tool, wait for the page to finish loading, then switch on airplane mode. Convert a photo. It still works, because nothing needs the network.

    Watch the network tab

    On a computer, press F12 (or ⌥⌘I on a Mac), open Network, then convert a 5 MB photo. You will not see a single request anywhere near that size.

    What we use

    • libheif decodes HEIC and HEIF, including 10-bit, grid and multi-image files from iPhones and Android phones.
    • Your browser's own encoders write JPG, PNG and WebP. Where Safari lacks WebP, we fall back to Google's libwebp in WebAssembly.
    • AVIF uses libaom via jSquash. HEIC output uses libheif with the kvazaar encoder.
    • PDFs are assembled with pdf-lib, and batch downloads are zipped on the fly.
    • Colour profiles (including iPhone Display P3) and the camera data you choose to keep are copied across by our own small metadata writer, so colours look right and nothing extra sneaks in.

    Why the first conversion takes a second

    The decoder is about 1.5 MB. Your browser downloads it the first time you use a tool, then keeps it in its cache, so later visits start instantly, even offline.

    Limits

    Everything runs on your device's memory, so very large batches on an older phone can be slow. iPhones and iPads cap a single canvas at about 16.7 megapixels, so very large panoramas are scaled down to fit when you convert them there. On a computer there is no practical limit.