Convert AVIF to JPG instantly in your browser
Drop in an AVIF file and get a standard JPG back in seconds — no app to install, no account needed. This is handy whenever you receive an AVIF image (common from modern cameras, iPhones, or web downloads) and need to share it somewhere that only accepts JPG, like an email client, a form upload, or a legacy photo editor.
Your image is converted entirely inside your browser using a canvas element. Nothing is sent to any server, so your photo stays completely private on your device.
How to convert AVIF to JPG
- Choose your file — click the upload area above or drag and drop your AVIF image onto it.
- Wait one moment — the tool decodes your AVIF and re-encodes it as a JPG right in your browser. No upload, no waiting for a server.
- Download your JPG — click the download button to save the converted file to your device.
Worked example
Say you have a photo called sunset.avif — a 1.2 MB holiday snap shot on an iPhone. After conversion, you get sunset.jpg at roughly 1.8–2.5 MB (JPG files are typically larger than AVIF at comparable quality). The colours and detail look the same to the naked eye. You can now attach it to any email or upload it to any photo service without a 'format not supported' error.
Do this in code: AVIF → JPG in Python and Node
If you need to batch-convert many files, here are two minimal, copy-pasteable scripts.
Python (Pillow)
Install Pillow first: pip install Pillow
from PIL import Image
img = Image.open('sunset.avif').convert('RGB') # AVIF may have an alpha channel; RGB drops it safely for JPG
img.save('sunset.jpg', format='JPEG', quality=90)
print('Done! Saved as sunset.jpg')
Pillow has supported AVIF decoding since version 9.1.0. Make sure you have libavif installed on your system if Pillow can't open the file.
Node.js (sharp)
Install sharp: npm install sharp
const sharp = require('sharp');
sharp('sunset.avif')
.jpeg({ quality: 90 })
.toFile('sunset.jpg')
.then(() => console.log('Done! Saved as sunset.jpg'))
.catch(err => console.error(err));
sharp uses native libvips under the hood, so it handles AVIF fast even for large batches.
How it works under the hood
Modern browsers (Chrome 85+, Firefox 93+, Safari 16+) can decode AVIF natively. This tool loads your file into an <img> element, draws it onto an HTML5 <canvas>, then calls canvas.toBlob('image/jpeg', quality) to re-encode it as a JPG. The resulting blob is handed straight to your browser as a download — no round-trip to any external service ever happens.
The AVIF format (AV1 Image File Format spec) uses AV1 video compression to achieve very small file sizes. JPG (JPEG) uses DCT-based compression — wider support, slightly larger files at the same visual quality, but readable by virtually every device and app on the planet.
When to convert AVIF to JPG — and when not to
| Situation | Convert to JPG? |
|---|---|
| Uploading to an older photo service, email, or form that rejects AVIF | ✅ Yes |
| Sharing with someone whose device or app can't open AVIF | ✅ Yes |
| Editing in Photoshop (older version) or a basic image editor | ✅ Yes |
| You need to keep a transparent background (logo, icon) | ❌ No — JPG drops transparency. Convert to PNG instead. |
| You're publishing on a modern website where file size matters | ❌ No — keep AVIF or use WebP for better compression than JPG. |
| You already have a JPG — re-saving loses quality every time | ❌ No — only convert once and keep the original. |
One important note: every re-encode to JPG loses a tiny bit of quality (JPG is lossy). Always convert from the best source file you have, and keep your original AVIF if you might need it again.
Ready to convert? Drop your AVIF file into the tool above and download your JPG in seconds.