Loading...
Loading...
Convert HEIC, JPG, PNG, WebP, GIF, BMP, and AVIF photos to any format. Batch up to 25 files at once — your images never leave your device.
An image converter changes a picture from one file format to another — for example, the HEIC photos your iPhone produces into a JPG you can email or upload anywhere. Different formats trade off file size, image quality, transparency support, and how widely they are read by other software. JPG and WebP are great for photos, PNG preserves crisp text and transparency, and HEIC is Apple's compact modern format that many older tools still cannot open. This converter handles HEIC, JPG, PNG, WebP, GIF, BMP, and AVIF input, and outputs JPG, PNG, or WebP. It runs entirely in your browser using the Canvas API, with HEIC decoded by the open-source heic2any library, so no file ever leaves your device.
Drag one or more images onto the upload area, or click to pick from your device. You can mix formats — drop HEIC photos and PNG screenshots together. Up to 25 files per batch, each up to 50 MB.
Use JPG for the broadest compatibility (any device, any app, any decade). Use WebP for the smallest file at the same visible quality. Use PNG when you need lossless output or a transparent background.
Quality 90 is a strong default for photos — high quality with a meaningful size win. Lower values shrink files more aggressively. Quality has no effect on PNG output, which is always lossless.
Click Convert all to process the queue. Each file shows its before and after size as it finishes. Download files individually, or use Download all to grab the entire batch.
If you converted HEIC to JPG specifically to share with a Windows or Android user, test that the output opens correctly on their side before deleting your originals.
1. Detect the input format from the file's MIME type and extension. 2. For HEIC/HEIF, decode via the heic2any WebAssembly library to a PNG blob. 3. For all other formats, decode directly with createImageBitmap(). 4. Draw the bitmap onto a 2D canvas at its native dimensions. 5. For JPG output, paint a white background first to flatten any transparency. 6. Call canvas.toBlob(format, quality) to re-encode using the browser's codec.
Modern browsers ship native decoders and encoders for JPG, PNG, WebP, GIF, BMP, and on most platforms AVIF. The Canvas API exposes those codecs through createImageBitmap() and canvas.toBlob() — drawing one and reading the other is effectively a format conversion. HEIC is the exception: Apple's container is not natively decoded by Chromium or Firefox, so heic2any (a Wasm port of libheif) handles HEIC input on the client side. The result is identical to a server-side conversion, but with zero upload and zero retained copies.
Reference: MDN — HTMLCanvasElement.toBlob()
| Input | Best output |
|---|---|
iPhone HEIC photo | Convert to JPG at quality 90 — opens on every device, sharable by email, typically a similar file size to the original. The classic 'why won't Windows open this?' fix. |
PNG screenshot of a UI | Keep PNG. Converting to JPG would soften the text edges; converting to WebP gives a cleaner, smaller result if size matters. Avoid lossy formats on text and line art. |
WebP product photo from a CMS | Convert to JPG when you need to embed the photo in a tool that does not support WebP (some legacy email clients, older PDF generators). Compatibility win, slight size hit. |
Animated GIF | Conversion produces a single still frame (the first frame). Use a dedicated GIF tool if you need to preserve animation. Edge case — animation is dropped. |
Cut out the subject from any photo with on-device AI — no upload required.
Shrink JPG, PNG, or WebP files in your browser with an interactive quality slider.
Adjust, filter, rotate and crop photos in the browser — no uploads, no watermark.
Compose memes and screenshot collages with real layers — paste, drag, crop, caption, export.
Last updated