AVIF to JPG Crop Converter
Load an AVIF image, drag the crop handles to define exactly the area you need, preview the result, then download a high-quality JPG. Everything runs in your browser — your image never leaves your device.
Drop an AVIF here
or Browse Files · AVIF supported
What This Tool Does
This tool loads an AVIF image directly in your browser, presents an interactive crop overlay with draggable handles, and converts the selected area to a JPG file. No server upload is required. The full workflow — loading, cropping, encoding — runs entirely in client-side JavaScript using the HTML5 Canvas API. AVIF files use AV1 compression that requires full pixel decoding before the canvas can draw them; this tool uses URL.createObjectURL() combined with img.decode() to guarantee the decode is complete before drawing, preventing the silent blank-canvas problem that affects standard Image element loading with AVIF. The output is a high-quality JPG at 92% quality, the format accepted by every browser, operating system, print service, and image platform.
Who This Is For
- Photographers who have AVIF source files and need a cropped JPG for email, social media, or platforms that do not accept AVIF
- Web developers extracting a specific region from an AVIF image for use in legacy environments or wide-compatibility contexts
- Anyone converting a portion of an AVIF photo to the universally compatible JPG format without installing image-editing software
- Designers preparing cropped image assets from AVIF source files for delivery to clients or systems that require JPG
AVIF vs JPG: Format Comparison
| Property | AVIF | JPG |
|---|---|---|
| Compression type | Lossy or lossless (AV1) | Lossy (DCT) |
| File size (typical photo) | Very small — best in class | Moderate — 5–20× larger than AVIF |
| Re-save quality loss | No (lossless mode) | Yes — each save degrades quality |
| Transparency support | Yes (alpha channel) | No |
| Browser support | Chrome 85+, FF 93+, Safari 16+ | Universal |
| Platform upload support | Inconsistent (2026) | Universal — every platform |
| Print & email support | Limited | Universal |
| Best for | Web delivery, maximum compression | Universal sharing, email, print, legacy systems |
Frequently Asked Questions
new Image() and FileReader.readAsDataURL(), the browser fires the onload event before the AV1 pixel decoding completes. Calling ctx.drawImage() at that point silently draws a blank canvas — no error, no warning, just empty output. img.decode() is a Promise that resolves only after the full pixel decode is ready, so the canvas always receives real pixel data.