How KitFuse removes metadata from photos without uploading them

A plain look under the hood: what happens to your photo, step by step, from the moment you choose it to the moment you download the clean copy.

In one paragraph

KitFuse reads your photo with your browser's built-in File API, maps the blocks inside the file, lists the ones that hold metadata, and writes a new file that contains only the image blocks. It then scans the new file again to confirm nothing personal is left. All of this runs as JavaScript on your device. No photo is ever sent to a server.

Step by step: what happens when you clean a photo

Here is the full journey of a photo through KitFuse. Nothing on this list involves the internet.

  1. Your browser opens the file locally.

    When you choose or drop a photo, the browser gives the page a reference to that file on your device. KitFuse reads the bytes into memory using the standard File API. This is the same mechanism a photo editor in your browser uses. The file is not copied anywhere else.

  2. KitFuse identifies the real format.

    File names can lie, so KitFuse checks the first few bytes of the file, known as the signature. A JPEG always starts with FF D8 FF, a PNG with 89 50 4E 47. That way an HEIC photo renamed to .jpg is still handled correctly.

  3. It maps the file and lists the hidden data.

    Photo files are made of labeled blocks. KitFuse walks through every block and reads the ones that carry metadata: EXIF, GPS, XMP, IPTC, comments, thumbnails and anything stored after the end of the image. GPS values are converted into normal latitude and longitude so you can see exactly what a photo gives away.

  4. It rebuilds the file without the metadata.

    When you press Clean metadata, KitFuse creates a new file. For JPG, PNG, WebP and GIF it copies across only the blocks needed to display the picture. For HEIC, AVIF, TIFF and videos it wipes the metadata in place and leaves every other byte where it was. Either way, the image or video data is copied exactly, so nothing is re-encoded and no quality is lost.

  5. It checks its own work.

    The new file is scanned with the same reader used in step 3. Only if that second scan finds no personal metadata does the photo get the green Clean badge. If anything is left, you'll see a warning instead of a false promise.

  6. You download or share the clean copy.

    The clean file is handed to your browser as a local download. If you clean several photos, KitFuse builds the ZIP file on your device too. On phones that support it, you can also use Save or share to send photos straight to your gallery.

What KitFuse keeps, and why

A photo metadata remover has one job: remove what identifies you, without damaging the picture. A few pieces of data are needed to display the photo correctly, so KitFuse keeps them by default.

  • The image data itself. Obviously. It's copied exactly as it was.
  • Basic structure blocks. Things like the image size, color format and compression tables. Without them the file wouldn't open. They describe the picture, not you.
  • The color profile (optional). An ICC profile tells screens how to show colors. Modern iPhones shoot in Display P3, and removing the profile can make those photos look washed out. A profile holds a technical description such as "Display P3", nothing personal.
  • The rotation flag (optional). Phones often store photos sideways and record a rotation value. If the original had one, KitFuse writes a tiny new EXIF block that contains that single number and nothing else.

Both optional items can be switched off under Cleaning options. With both off, the file contains no metadata at all.

How each file format is cleaned

Each format stores metadata differently, so KitFuse uses a dedicated method for each one.

FormatWhere metadata livesHow KitFuse cleans itQuality
JPG / JPEGAPP1 (EXIF and XMP), APP13 (IPTC), APP2 (multi-picture data), APP11 (Content Credentials), comment blocks, data after the end markerRemoves those segments and copies the image scans exactlyLossless
PNGeXIf, tEXt, iTXt and zTXt chunks (including AI prompts), tIME, private chunksKeeps only the chunks that draw the imageLossless
WebPEXIF and XMP chunksRemoves the chunks and updates the file header flagsLossless
HEIC / HEIF / AVIFEXIF and XMP items inside the containerWipes those items in place; the picture data and file layout stay the sameLossless
GIFComment blocks, XMP and other application extensionsRemoves those blocks and keeps the animation and loop settingsLossless
TIFFEXIF, GPS, XMP, IPTC and descriptive tagsRemoves the tags and wipes their data, keeping only what draws the imageLossless
MP4 / MOVUser data (GPS, make, model, software), Apple and Android metadata keys, XMP, creation dates, telemetry tracksTurns metadata boxes into empty padding and clears dates; audio and video are untouchedNo re-encoding
WebM / MKVTitle, tags, writing app, recording date, attachmentsReplaces those elements with empty paddingNo re-encoding
PDFDocument info (author, title, app, dates), XMP, document ID, comment authorsRewrites the PDF without them; pages and text are copied as they areSame content

Because HEIC, AVIF and video files are patched rather than re-encoded, KitFuse doesn't even need your browser to be able to play them. A Chrome user on Windows can clean an iPhone HEIC photo or a 4K MOV video, and the result is byte-for-byte identical apart from the wiped metadata. Large videos are read in small pieces, so a 2 GB recording doesn't have to fit in memory.

How to check that nothing is uploaded

Privacy claims are easy to make. Here's how to verify ours in under a minute.

The airplane mode test (any device)

  1. Open KitFuse and wait for the page to finish loading.
  2. Turn on airplane mode, or disconnect from Wi-Fi.
  3. Add a photo, clean it and download it. Everything still works.
  4. For extra peace of mind, close the tab before you reconnect.

A tool that uploads photos would fail at step 3. KitFuse doesn't, because it has nothing to send.

The developer tools test (desktop)

  1. Press F12 (or Cmd + Option + I on a Mac) and open the Network tab.
  2. Clean a photo and watch the list of requests.
  3. You'll see no request that carries your image. Any entries starting with blob: are local files in your own browser's memory.

The page does load ordinary website files such as the stylesheet, and advertising code from Google once ads are enabled. KitFuse's own code never passes your photo to any of them.

Limits worth knowing about

Removing metadata solves one specific problem. To use it well, it helps to know what it doesn't do.

  • It can't change what's visible in the picture. A house number, a street sign, a school logo or a reflection in a window can reveal just as much as GPS data. Crop or blur those before sharing.
  • It can't recall copies you've already shared. Clean photos before they leave your device.
  • File names can carry information. Names like IMG_20260412_183012.jpg include the date and time. Turn on Rename files to replace them with neutral names.
  • RAW camera files aren't supported yet. KitFuse tells you when a file falls into this group.
  • Signed PDFs lose their signature. Any change to a digitally signed PDF invalidates the signature, so clean a copy and keep the signed original.

Still curious about the data itself? Our guide What is photo metadata? explains every type in plain English, and the FAQ covers the most common questions.