AVIF to WebP Crop Converter
Load an AVIF image, drag the crop handles to define exactly the area you need, preview the result, then download a compact WebP. 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 WebP 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 asynchronous pixel decoding before the canvas can draw them; this tool uses URL.createObjectURL 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 WebP at quality 0.92, the format natively supported by every modern browser for web delivery.
Who This Is For
- Web developers who have AVIF source artwork and need a cropped WebP for broader browser compatibility
- Designers preparing web assets from next-gen AVIF source files for production pipelines that expect WebP input
- Anyone converting a specific region of an AVIF photo to WebP without installing software
- Developers who need a quick crop-and-convert workflow that stays entirely in the browser
AVIF vs WebP: Format Comparison
| Property | AVIF | WebP |
|---|---|---|
| Compression | AV1 (best-in-class) | VP8/VP8L (excellent) |
| Typical file size advantage | 20–50% smaller than WebP | 25–35% smaller than JPEG |
| Browser support | Chrome 85+, Firefox 93+, Safari 16+ | Universal — all modern browsers |
| Transparency support | Yes (alpha channel) | Yes (alpha channel) |
| Lossless mode | Yes | Yes |
| HDR / wide color gamut | Yes | Limited |
| Encode speed | Slow (AV1 is complex) | Fast |
| Best for | Maximum compression, future-focused delivery | Broad compatibility, fast encoding, web images |
Frequently Asked Questions
new Image() and FileReader.readAsDataURL() approach, 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. This tool uses URL.createObjectURL(file) followed by img.decode(), a Promise that resolves only after the full pixel decode is ready, so the canvas always receives real pixel data.