Real image cleaning — strip hidden metadata, GPS, and threats from your photos, entirely on your device.

Converting Image Formats: Which Ones Actually Work, in One Step

Short version: pick any file, choose "Force [format]" in the options before you disarm it, and you get that format back - metadata removed, threats checked, in a single pass. No downloading a PNG first and re-uploading it. The only real exceptions are a handful of formats that can only ever be read, never written - and there's a real, specific reason for each one, not an arbitrary limitation.

09 The direct conversions - one step, any input to any of these

Whatever you drop in - JPEG, PNG, GIF, WebP, TIFF, BMP, ICO, QOI, PNM, TGA, and yes, even HEIC or AVIF - you can pick JPEG, PNG, GIF, WebP, TIFF, BMP, ICO, QOI, PNM, or TGA as the output. That's the same "Force format" dropdown right above the Disarm button. HEIC and AVIF inputs go through their own decode step first (covered on their own pages), but that's invisible to you - you still just pick an output format and go.

Go deeper: why this doesn't need a "long way round" at all

It might seem like converting a HEIC photo to, say, TIFF would need two passes - decode HEIC to something ordinary, then convert that to TIFF separately. It doesn't: the HEIC-to-pixels decode step and the pixels-to-TIFF encode step both happen in the same pass, before you ever see a download link. The "output format" choice is genuinely independent of whatever the input format was.

The real exceptions - input-only, and why

Three formats can be cleaned and read, but never produced as output here, each for a different, genuine reason rather than an arbitrary gap:

  • HEIC/HEIF - its HEVC image coding is patent-encumbered. There's no viable open-source encoder to license, in any language, not just Rust.
  • JPEG XL - a real pure-Rust decoder exists (see its own page), but no mature pure-Rust encoder yet. This is a "not built yet," not a "can't be built" - it may change.
  • SVG - not a technical gap at all. SVG is XML that can contain scripts; there's no safe subset of arbitrary code to preserve, so every SVG is deliberately rasterized to pixels rather than re-exported as SVG. Covered in more depth on its own page.

AVIF is a slightly different case worth being precise about: the underlying engine can encode AVIF in principle (a real, working code path), but this specific browser build doesn't currently have that feature switched on - so today, AVIF is also effectively input-only here, even though it isn't for the same structural reason HEIC is. That's a "not enabled yet" gap, not a "can't."

What actually happens if you pick an impossible combination

You can't select HEIC, JXL, or SVG as an output in the first place - they simply aren't in the dropdown, rather than failing after the fact with a confusing error.

Convert an image now →