How to convert an image
- Drop your images into the zone above, or click to browse. HEIC, JPG, PNG, WebP, and AVIF files are all accepted — you can select multiple at once.
- Choose an output format: JPG for universal compatibility, PNG for lossless quality or transparency support, or WebP for the best size-to-quality ratio in web contexts.
- For JPG output, adjust the quality slider if needed. 92% (the default) is visually lossless for most images.
- Click Convert. Each image is processed in turn. Click Save next to any image to download it, or use Download ZIP to grab all converted files at once.
HEIC decoding uses the heic2any library. All other format conversion uses the browser's built-in Canvas API. No file is ever uploaded to a server.
HEIC to JPG — the iPhone photo problem
Since iOS 11, iPhones and iPads save photos in HEIC format (High Efficiency Image Container) by default. HEIC compresses photos to roughly half the size of an equivalent JPEG at the same perceptible quality — a significant win for storage on-device.
The problem is compatibility. HEIC is not a web standard. Windows requires an optional codec to open HEIC files natively. Most Android devices cannot open them at all. Upload a HEIC photo to a standard website form and it will often be rejected. Send one to a colleague on a Windows laptop and they may see a generic icon rather than the photo.
Converting to JPG solves this immediately. Every device, browser, and application since the early 2000s can open a JPEG. The file will be larger — roughly double the HEIC file size at comparable quality — but the compatibility is universal.
When to use each output format
JPG is the right choice for photographs in almost every context: sharing with family and colleagues, uploading to social media, attaching to emails, or submitting to any form that accepts images. It does not support transparency. It uses lossy compression, so repeated save-edit-save cycles degrade quality — but converting once from HEIC to JPG introduces no perceptible loss at 92% quality.
PNG is the right choice when you need transparency — logos on a transparent background, screenshots with no background, or interface elements. PNG is lossless, meaning the pixel values are stored exactly, which makes it ideal for graphics with sharp edges, text, and solid colours. Photographs stored as PNG are visually perfect but significantly larger than an equivalent JPG.
WebP is the modern web format. Chrome, Firefox, Safari, and Edge all support it. For photographs, WebP achieves similar visual quality to JPG at 25–35% smaller file sizes. For graphics with transparency, WebP outperforms PNG in file size while retaining alpha channel support. The caveat: older software (Photoshop versions before 2020, some email clients, Windows Photo Viewer) may not open WebP files.
How it works under the hood
HEIC/HEIF decoding: HEIC uses the HEVC (H.265) video codec to compress still images. Browsers do not natively decode HEIC in the Canvas API because HEVC licensing fees historically prevented inclusion in open-source software. The heic2any library implements a pure JavaScript HEIC decoder, which converts the file to a JPEG blob in memory — no server required.
Web format conversion (JPG, PNG, WebP, AVIF): the browser's Canvas API is used. The source image is decoded into an <img> element (which browsers can decode natively), drawn to an off-screen <canvas> at the original dimensions, and then re-encoded using canvas.toBlob(mimeType, quality). The resulting blob is downloaded directly to your device.
AVIF input: Chrome 85+ and Firefox 93+ can decode AVIF natively via the <img> element, so the canvas approach works. Safari added AVIF support in version 16. For older browsers, AVIF input may fail — the tool reports an error per file in that case.
Limits and what to expect
- Animated WebP and GIF: only the first frame is converted. For animated image conversion, use a dedicated tool.
- EXIF metadata: the canvas encode/decode pipeline does not preserve EXIF data (GPS location, camera model, capture date). If EXIF preservation is important, use a desktop tool that supports EXIF-aware conversion.
- Transparency to JPG: JPG does not support transparent pixels. Any transparent areas in a PNG or WebP file will be replaced with a white background when converting to JPG.
- Very large HEIC files: HEIC decoding in JavaScript is computationally intensive. A 12 MP iPhone photo typically takes 1–3 seconds per file. Batches of 20+ photos may take a minute or more.
- AVIF output:
canvas.toBlob('image/avif')is supported in Chrome 94+ and Firefox 93+. Safari does not yet support AVIF encoding via canvas. If your browser does not support AVIF output, use WebP instead.
Privacy: what happens to your images
Your images are loaded into browser memory, decoded and re-encoded locally using JavaScript libraries and the Canvas API, and downloaded directly to your device. No data is transmitted to any server — not the image bytes, not the file names, not any metadata.
HEIC photos from phones frequently contain GPS coordinates embedded in EXIF data. Converting locally means that location data never leaves your device in the process. (Note: the output file from this tool will not contain GPS EXIF — the canvas pipeline strips it — which may itself be desirable before sharing photos externally.)