Forum Discussion
How do I convert HEIC files to JPEGs in Windows?
- Mar 24, 2026
Hi all,
Firstly, thank you to everyone who has contributed to this thread so far.
We’ve recently seen a significant increase in posts asking how to convert .HEIC images to .JPG on Windows, so we wanted to provide a single clear answer that:
- Uses native Windows functionality
- Does not rely on third‑party software
- Avoids uploading images to online conversion tools
There are valid third‑party options available, however the Microsoft Tech Community is not the appropriate place to recommend or promote external software solutions.
Going forward, new posts on this topic may be redirected here to help keep information consolidated and easy to find for others.
Step 1 — Install HEIC Support (One‑Time Setup)
Before converting images using the Photos app, you may need to install:
This is a Microsoft application.
Optional (PowerShell)
If you're comfortable doing so, you can also install this from an elevated PowerShell window:winget install Microsoft.HEIFImageExtensionWhy this may not always work
On some work or school devices, installation of Microsoft Store applications may be restricted by organisational policy.
If the above command fails, you may need to contact your IT Administrator to have the HEIF Image Extensions deployed to your device.
Step 2 — Convert the Image Using Photos
- Right‑click the .heic file
- Select: Open with → Photos
If the image does not open, ensure the codec above has been installed.
Once the image is open in Photos:
- Click the ⋯ (three dots) in the top‑right corner
- Select: Save as
- Change Save as type to: JPEG (*.jpg)
- Choose where you'd like to save the file
Developer Option — Bulk Conversion Using PowerShell
If you need to convert multiple .heic files (for example, an export from an iPhone), you can do this using PowerShell and Windows’ built‑in imaging libraries.
Update the folder paths as required:
Add-Type -AssemblyName System.Runtime.WindowsRuntime $null = [Windows.Storage.StorageFile, Windows.Storage, ContentType = WindowsRuntime] $null = [Windows.Graphics.Imaging.BitmapDecoder, Windows.Graphics.Imaging, ContentType = WindowsRuntime] $null = [Windows.Graphics.Imaging.BitmapEncoder, Windows.Graphics.Imaging, ContentType = WindowsRuntime] $sourceFolder = "C:\Path\To\HEIC" $destinationFolder = "C:\Path\To\Output" Get-ChildItem $sourceFolder -Filter *.heic | ForEach-Object { $inputPath = $_.FullName $outputPath = Join-Path $destinationFolder ($_.BaseName + ".jpg")I hope this is helpful. We’re always happy to support discussions around achieving things natively within Windows here in the community.
To help keep guidance consistent and avoid recommending external software, links to third‑party conversion services may be redirected to this post or removed where appropriate.
HEIC is a modern image format used by Apple iPhone, but it's not always compatible with Windows os. If you want to batch convert .heic files to the more universal .jpg format using PowerShell, it's possible. But you'll need Windows 10/11 with HEIF and HEVC extensions installed and access to the Windows.Graphics.Imaging API via PowerShell.
Below is a PowerShell script using Windows Runtime APIs to convert HEIC to JPG in Windows 11/10.
Add-Type -AssemblyName System.Runtime.WindowsRuntime
$null = [Windows.Storage.StorageFile, Windows.Storage, ContentType = WindowsRuntime]
# Source and destination folders
$sourceFolder = "C:\Path\To\HEIC"
$destinationFolder = "C:\Path\To\Output"
# Load all .heic files
$files = Get-ChildItem -Path $sourceFolder -Filter *.heic
foreach ($file in $files) {
$inputPath = Join-Path $sourceFolder $file.Name
$outputPath = Join-Path $destinationFolder ($file.BaseName + ".jpg")
$softwareBitmap = $decoder.GetSoftwareBitmapAsync().GetAwaiter().GetResult()
$outputFile = [Windows.Storage.StorageFile]::CreateStreamedFileAsync(
[System.IO.Path]::GetFileName($outputPath),
{ param($streamOut)
$outStream = $streamOut.AsStreamForWrite()
$encoder = [Windows.Graphics.Imaging.BitmapEncoder]::CreateAsync(
[Windows.Graphics.Imaging.BitmapEncoder]::JpegEncoderId,
$streamOut
).GetAwaiter().GetResult()
},
$null
).GetAwaiter().GetResult()
Write-Host "Converted: $inputPath -> $outputPath"
}⚠️ Notes:
✅ HEIF Image Extensions and HEVC Video Extensions must be installed from Microsoft Store.
✅ Tested fine on Windows 10 and Windows 1111.
⚠️ This method works only on systems where the Windows Runtime API is available.
❌ Does not work on older versions of Windows or systems without HEIC support. In this case, you need a third-party HEIC to JPEG converter app instead.