Image Converter
Change any image to the format you need. Supports HEIC, WebP, PNG, JPG, and more. Drop multiple files at once.
Drop your images here
or click to browse. Select multiple files
Popular conversions
How it works
Your browser decodes the image, draws it to a canvas, and re-encodes it in the format you picked. That is why this needs no server: the decoders are already in the browser because it has to display images anyway.
It reads JPEG, PNG, WebP, GIF, BMP, TIFF, SVG, HEIC, HEIF and AVIF, and writes JPEG, PNG or WebP.
More detail
What survives the round trip, and what does not
- Transparency survives into PNG and WebP. Converting to JPEG destroys it, and specifically composites onto white - a transparent logo comes out sitting on a white rectangle, not on your page background.
- Metadata does not survive. Canvas hands back pixels, not the container, so EXIF, GPS coordinates and camera information are dropped. Good if you are stripping location data before posting, bad if you needed it.
- Colour is normalised to sRGB. Fine for anything heading to the web, wrong for a print asset in a wider gamut.
- Animation does not survive. An animated GIF or WebP comes out as a single still, the first frame.
The quality slider only does something sometimes
It applies to JPEG and WebP. It does nothing at all when the output is PNG, because PNG is lossless and has no quality parameter - the value is not passed to the encoder. If a PNG is too large, the answer is fewer pixels or a different format, not a lower quality setting.
A note on HEIC
HEIC and HEIF, the formats an iPhone produces by default, are not natively decodable in most browsers. They go through a separate WebAssembly decoder first, which converts to PNG and then re-encodes to your target. Two hops rather than one, so it is noticeably slower than the other formats and uses more memory. Worth knowing before you drop fifty holiday photos in at once.
Limits
50 MB per file, 100 megapixels, and no side longer than 16384 pixels. That last is the browser's canvas ceiling rather than a choice. Batches are processed one file after another, and a batch of very large images can exhaust the tab's memory even when each file is individually fine.
Questions
Does the image get sent to a server?
No. Decoding and encoding both happen on a canvas in your browser. Open devtools while converting and the Network tab stays quiet.
Why did my transparent PNG turn white?
Because you converted it to JPEG, which has no alpha channel. The transparency is composited onto white before encoding. Convert to PNG or WebP instead if you need to keep it.
Why does changing quality do nothing?
You are outputting PNG. It is a lossless format with no quality parameter, so the encoder ignores the setting entirely. Switch the target to JPEG or WebP for the slider to matter.
Will converting improve a low-quality image?
No. Re-encoding cannot recover detail that a previous encoder discarded. Converting a blurry JPEG to PNG gives you a lossless copy of a blurry image, several times larger and no sharper.
Why is HEIC so much slower?
Because browsers cannot decode it natively. It runs through a WebAssembly decoder to PNG first and is then re-encoded to your target, so every HEIC file costs two conversions instead of one.