← All posts
ImagesPublished · 8 min read

How to convert AVIF to JPG on Windows — and why you got an .avif at all

You right-click a picture on a website, save it, and the file ends in `.avif`. The form you wanted to upload it to says the format isn't supported, or an older program won't open it. AVIF is a newer image format that packs the same picture into fewer bytes, and websites send it whenever your browser says it can handle it. This guide shows that happening with a real photo URL, why renaming the file to .jpg is not a fix, and three ways to get a real JPEG — the quickest of which needs no upload and no install, because browsers can already decode AVIF.

Free tool featured in this guide
Image converter — PNG, JPEG, WebP

Drop the .avif in, choose JPEG and download. Your browser decodes the AVIF itself, so the conversion runs on your machine and the image is never uploaded.

Open the free tool →

What an .avif file is

AVIF is an image format built on the AV1 video codec. Microsoft's documentation for the Windows imaging stack puts it neatly: HEIF is a container, a HEIF file compressed with HEVC usually ends in .heic — the iPhone format — and one compressed with AV1 usually ends in .avif. So an AVIF is a close cousin of the iPhone's HEIC, just with a different compressor inside.

The reason it exists is size. MDN's image format guide describes AVIF as offering much better compression than PNG or JPEG, and lists support in Chrome, Edge, Firefox, Opera and Safari. That is why so many sites now serve it: fewer bytes per picture means faster pages. The catch only shows up when the picture leaves the browser — older programs, upload forms and some editors still expect JPEG or PNG.

Three routes. The browser route needs nothing installed; Paint, Photos and PowerShell rely on two free Windows extensions.

Why you got AVIF when you saved the picture

Many image servers keep one address for a picture and decide the format per request. Your browser sends an Accept header listing the formats it can display, and the server answers with the smallest one it has that fits. I asked a single photo URL on images.unsplash.com for the same 1200-pixel-wide picture three times, changing nothing but that header:

Accept header sentFormat returnedSize
image/avif,image/webp,… (what Chrome sends)AVIF125,269 bytes
image/webp,image/*WebP201,878 bytes
image/jpegJPEG177,961 bytes
Same address, three different files. The response also carries `Vary: Accept`, the server's own note that the answer depends on that header.

Opening the same address directly in Chrome 152 confirmed it: the page reported its type as image/avif. So nothing went wrong when you saved the picture — the site gave your browser the format it asked for, and "Save image as" wrote exactly that to disk.

Why renaming to .jpg does nothing

The extension is only a label. What decides the format is the data inside, and an AVIF announces itself in the first few bytes: bytes 4 to 11 read ftypavif. A JPEG starts with the bytes FF D8 FF. Renaming photo.avif to photo.jpg changes the label and leaves those bytes alone.

Renaming keeps the AVIF inside; only re-saving produces a JPEG that starts with FF D8 FF.

This is why renaming seems to work at first. Browsers and Windows' own viewers look at the contents, so the renamed file still opens. The moment something actually validates the format — an upload form, a print shop's checker, an older editor — it reads ftypavif and refuses.

Fastest: convert it in the browser, nothing uploaded

Here AVIF is much friendlier than HEIC. Browsers ship an AVIF decoder, so a web page can turn an AVIF into a JPEG on your own machine. I checked the exact steps a client-side converter uses: in Chrome 152 the 1200×801 AVIF from the test above decoded without complaint, and drawing it onto a canvas and exporting at JPEG quality 0.9 produced a 201,454-byte file starting with FF D8 FF — a real JPEG.

  1. 1Open the image converter on this site.
  2. 2Pick JPEG as the output and leave quality around 90.
  3. 3Drop the .avif file in (or click to choose it) and press Download.
ℹ️

Some systems hand the browser an .avif file with no format label attached. The converter now accepts files with an image extension in that case and lets the decoder judge the contents — in testing, Chrome decoded the AVIF the same way with or without the label.

Because the work happens in your browser, the picture never leaves your computer. That matters if it shows people, documents or anything private — most "AVIF to JPG" sites upload the file to a server to do the same job.

One or two files in Paint or Photos

Paint and the Photos app on Windows 11 both register .avif as a file type they open. On the PC used for this guide the installed app manifests list it for Paint 11.2605.81.0 and Photos 2026.11090.22001.0.

  1. 1Right-click the .avif file and choose Open with → Paint.
  2. 2Go to File → Save as → JPEG picture.
  3. 3Pick a folder and save. The original .avif stays where it was.

In Photos the idea is the same: the menu in the top right has Save as, where you can switch the type to JPG.

When Windows won't open it — the two extensions

If Explorer shows a blank icon or Photos says it can't open the file, Windows is missing a codec. Following Microsoft's own description of the format, it takes two pieces: the HEIF Image Extension, which reads the container, and the AV1 Video Extension, which decodes the AV1 data inside. Microsoft's documentation notes that the AV1 codec might not be available on every PC and points to the Microsoft Store for it.

The test PC had Microsoft.HEIFImageExtension 1.2.48.0 and Microsoft.AV1VideoExtension 2.0.35.0 installed. With both present, Windows' imaging component opened the AVIF with a decoder it calls Microsoft HEIF Decoder, whose supported types include image/avif.

💡

To see what you have, run Get-AppxPackage *HEIF* and Get-AppxPackage *AV1* in PowerShell. An empty result means that extension isn't installed. The browser route above works either way, since it doesn't use Windows' codecs at all.

A whole folder — PowerShell

For a folder of AVIF files, PowerShell can call Windows' imaging component directly — the same approach as for HEIC and WebP. Change the path and paste this into a PowerShell window; every .avif in the folder gets a .jpg next to it.

powershell
Add-Type -AssemblyName PresentationCore

Get-ChildItem "C:\Users\you\Downloads\*.avif" | ForEach-Object {
    $f = [System.Windows.Media.Imaging.BitmapDecoder]::Create([Uri]$_.FullName, 'None', 'OnLoad').Frames[0]
    $e = New-Object System.Windows.Media.Imaging.JpegBitmapEncoder
    $e.QualityLevel = 90
    $e.Frames.Add($f)
    $o = [System.IO.File]::Create([IO.Path]::ChangeExtension($_.FullName, '.jpg'))
    $e.Save($o); $o.Close()
}

I ran exactly this on a 1920×1200 test AVIF of 47,956 bytes; it wrote a 211,846-byte JPEG starting with FF D8 FF. Nothing is deleted — check the results before you remove anything. This route needs the same two extensions as Paint and Photos.

If you already use Python, recent Pillow reads AVIF too. With Pillow 12.3 on the test PC, one line did the same conversion (202,693 bytes):

python
from PIL import Image
Image.open("photo.avif").convert("RGB").save("photo.jpg", quality=90)

After converting: expect a bigger file

AVIF exists to be small, so the JPEG of the same picture is usually larger. In the PowerShell test the file grew from 47,956 to 211,846 bytes — more than four times. That is normal, not a mistake. If the place you're uploading to accepts AVIF, keep the original; convert only when something refuses it.

Both formats are lossy, so each conversion re-compresses an already compressed picture. At quality 90 the difference is hard to see, but avoid converting the converted file again, and keep the .avif until you're happy with the result.

SituationBest routeWhy
One file, any PCBrowser converterNo install, no upload
One or two filesPaint or Photos → Save as JPEGApps Windows already has
A whole folderPowerShell (or Pillow)One command for everything
Private photosBrowser converter or PowerShellThe file never leaves your PC
Destination accepts AVIFDon't convertThe AVIF is the smaller file

FAQ

Q. Why does the same picture save as .webp on one site and .avif on another?

Each site decides which formats it offers. Your browser announces what it can display, and the server picks from what it has — some only generate WebP, others AVIF as well. In the test above, the same URL returned AVIF, WebP or JPEG depending only on the Accept header.

Q. The file opens in my browser but not in Photos. Why?

The browser has its own AVIF decoder. Windows apps rely on Windows' codecs, which need the HEIF Image Extension and the AV1 Video Extension from the Microsoft Store.

Q. Is AVIF smaller than WebP?

Usually. MDN says AVIF generally compresses better than WebP, and in the test above the AVIF was 125,269 bytes against 201,878 for the WebP of the same picture.

Q. Will converting to JPG lose quality?

A little, because both formats are lossy. At quality 90 it is hard to see. Keep the original .avif until you've checked the JPEG.

Q. Is the image converter on this site safe for private images?

Yes — it runs entirely in your browser. The AVIF is decoded and re-encoded on your machine, and nothing is uploaded.

Free tool featured in this guide
Image converter — PNG, JPEG, WebP

Drop the .avif in, choose JPEG and download. Your browser decodes the AVIF itself, so the conversion runs on your machine and the image is never uploaded.

Open the free tool →

More posts