The Complete HEIC to JPG Guide: Batch-Convert iPhone Photos Right in Your Browser

前端工程

You've Probably Already Hit This Problem

A colleague sends a few product shots taken on an iPhone, and when you double-click to open them, Windows Photo Viewer pops up "No app found" or shows only a blurry thumbnail. Someone in a WeChat group sends you the "original," and after downloading you find the extension is .heic — older systems, Android phones, and about half of all web upload forms simply don't recognize it.

This isn't your computer's fault. Apple switched the default camera format to HEIC starting with iOS 11 (2017), and the rest of the world just hasn't fully caught up.

In the years we've been building the image tools in our library, we get this kind of request almost daily. This article explains HEIC's backstory and the pitfalls that actually matter when converting, all in one place. If you just want a quick fix, drag the files into our local converter; but if you want to understand the "why" and "how not to get burned," the ten minutes below are worth it.


What HEIC Actually Is: Separate HEIF from HEVC First

A lot of people treat HEIC as one "image format," but behind it are two layers of concepts:

  • HEIF (High Efficiency Image File Format): the container standard Apple adopted, defined by the MPEG group. It specifies how images, thumbnails, depth maps, and Live Photo data get "packaged" into one file.
  • HEVC (H.265): the codec that actually does the work, compressing the image data into a smaller size.

The .heic extension specifically means "a HEIF file encoded with HEVC." You may also encounter:

Extension Meaning
.heic HEVC-encoded HEIF (most common)
.heif Generic HEIF container extension
.avci / .avcs HEIF encoded with AVC(H.264) / AVC-SVC
.heics / .heifs Sequence (multiple images) of the above

One-line memory aid: HEIF is the box, HEVC is the squished picture inside it. Apple put HEVC in the box, so what we usually call HEIC is basically "HEVC-compressed HEIF."

Next to traditional JPEG:

Dimension JPEG HEIC (HEVC-in-HEIF)
Compression Lossy (DCT blocks) Lossy (HEVC intra-frame)
Same-quality size Baseline 40%–50% smaller
Transparency
Multiple images in one file (Live/burst/depth)
10/12-bit depth, wide gamut (P3)
Block artifacts Obvious (low quality) Softer
Compatibility Nearly everything Apple-centric; Windows/Android need extra support

HEIC is genuinely more advanced than JPEG: for the same photo it's nearly half the size and can hold Live Photos, depth maps, and higher color depth. The cost is compatibility — the photo saves space when shot, but the moment you send it to someone, upload it to a website, or send it to print, the trouble begins.


How to Tell Whether a File Is HEIC

Don't rely on the extension alone. Some systems rename or disguise HEIC. A few reliable methods:

  1. Check the extension: .heic / .heif is basically it.
  2. Check the file header (magic bytes): open it in a hex editor; HEIF files usually start with ftyp, followed by brand markers like heic, mif1, hevx.
  3. Check "Type" in properties: in Windows Explorer, HEIC often shows as "HEIF Image"; on macOS "Get Info" shows "HEIC."
  4. Use the tool to identify it: just drag the file into our local converter. If it can't read the format it tells you explicitly, instead of silently giving you a broken image.

Gotcha: an iPhone "Live Photo" is actually a .heic paired with a .mov short video. Converting only the .heic drops that moving clip; what remains is just the static cover frame.


Why You Must Convert to JPG

  • Windows doesn't open it by default: Win10/11 require manually installing the "HEIF Image Extensions" from the Store (free now, but not preinstalled), otherwise you only get a thumbnail.
  • Android is hit-or-miss: most Android galleries have uneven HEIC support, and shared images often turn into black frames or fail to preview.
  • Web forms and uploaders reject it: many back-end upload components, CMSs, and email systems only accept JPG/PNG; .heic errors out or fails silently.
  • WeChat/IM "original" is a trap: if the recipient is on an old device or lacks the extension, the attachment may arrive unopenable.
  • Design and print pipelines: almost all layout, print, and cut-out tools lag on HEIC and error on import.

The practical conclusion: if you want a photo to "definitely open on someone else's device," JPG is still the safest choice. Use PNG only when you need transparency (e.g., a cut-out product shot).


Four Ways to Convert — and They Differ More Than You Think

Method Pros Cons For whom
Pick "Automatic" when transferring from iPhone Apple converts for you Often still sends originals; depends on iTunes/Photos Occasional, few images
Online conversion sites Open a page and go Files upload to someone else's server — privacy risk People fine with uploading
Desktop software (IrfanView, XnConvert, Adobe Bridge) Strong batch, tunable Install + learning curve Frequent users
Browser-local tool No install, no upload, cross-platform Very large files limited by browser memory Everyone

A word on privacy. Many "free online HEIC converters" essentially upload your photos to their server, convert, then download. If it's a product shot, ID photo, or private moment, that's handing the original to a stranger — and you have no idea whether they keep it, train models on it, or resell it. The reason we built our HEIC converter is to keep the whole process inside your own browser — files are decoded locally via WASM, and closing the tab wipes the data; they never leave your machine.


OS-Built-In Methods (No Third-Party Tools)

If you'd rather not use a web tool, the OS has options too, each with drawbacks:

Windows: install HEIF extension then convert

  1. Search "HEIF Image Extensions" in the Microsoft Store and install.
  2. Once installed, Photo Viewer can preview; right-click "Open with Paint → Save as → JPEG."
  3. Batch requires PowerShell or the Photos app's export — mediocre experience.

macOS: Preview one-click export

  1. Open the HEIC in "Preview."
  2. "File → Export," choose JPEG as format, drag the quality slider.
  3. Batch: select all in the "Thumbnail" sidebar → Export to export many at once. Drawback: macOS supports HEIC natively, but exported JPEG defaults to sRGB and loses the original wide gamut.

iOS: change the default format at the source Settings → Camera → Formats → Most Compatible makes the iPhone shoot JPEG/MP4 directly, so you never convert again. Cost: larger files. If you only occasionally need compatibility, keep High Efficiency and pick "Automatic" when transferring.

These work, but they're either single-image, require installs, or are inconsistent across platforms. For reliably batch-converting a set of images, the browser-local tool is usually the smoother path.


Batch-Convert in the Browser: Step by Step

The steps are simple, but a few details decide the quality of the result:

  1. Open HEIC to JPG and drag the .heic files in (supports a whole batch at once, or Ctrl/⌘ multi-select).
  2. Pick the output format: JPG is the most compatible; choose PNG if you need transparency; pick WebP for smaller size if the recipient's environment is modern.
  3. Pick quality: JPG quality around 90 (see the "Quality" section below). Since HEIC is already compressed, there's no need to crush it again on conversion, or quality takes a second hit.
  4. Click convert: the browser decodes HEVC locally via WASM, results in seconds, no upload.
  5. Download: automatically zipped, grab all images at once.

If the result is still too big, run it through image compression at quality 85–90. Need uniform dimensions? Use batch resize. Want modern formats like WebP/AVIF? Use format conversion. String those three together and you have a pipeline: receive iPhone photos → convert → slim down → fit wherever they need to go.

A real workflow: e-commerce product shots

Say you run a shop and a supplier sends 200 iPhone-shot .heic product images:

200 .heic files received
  → /image/heic-to-jpg batch to JPG (quality 92, preserve detail)
  → /image/resize unify to 1200px wide (fit product page)
  → /image/compress to 85 (halve size again, faster load)
  → download ZIP, upload straight to the shop backend

Done in 5 minutes in the browser — no software, no original upload.


EXIF, Color, and Transparency: Three Easily-Missed Details

1. Keep or strip EXIF? HEIC often carries capture time, GPS location, and device model. When converting to JPG, if you don't clean it, that private info travels with the new image. If the image goes public (an apartment photo with GPS is awkward), run it through a metadata-stripping tool like image compression afterward.

2. Wide gamut (P3) is lost iPhone HEIC is P3 wide gamut — more vivid than standard sRGB. Converting to JPG (sRGB) "squeezes" the most vivid colors back into sRGB range; in professional color work the difference is visible. Invisible for everyday sharing, but mind it for print and grading.

3. Transparent areas turn black/white HEIC transparency becomes white or black in JPG (JPG has no alpha). Choose PNG output if you need transparency; otherwise decide the background color in advance.

4. Live Photos keep only one frame HEIC may embed Live/depth info; converting to JPG drops it, leaving only a static frame. That's a format limit, not a tool bug. For the motion part, handle the separate .mov separately.


Quality: Does Converting to JPG Actually Lose Quality?

The most-asked question. Conclusion first: visually it's basically unnoticeable, but strictly speaking it is lossy.

HEIC's advantage is "higher quality at the same size," not "lossless at the same quality." Decoding it to a bitmap and re-encoding as JPG adds one more lossy pass. What decides the result is the JPG quality parameter:

JPG quality Visual Size Recommendation
100 Nearly original Very large Unnecessary, poor value
92–95 No visible diff Large Product shots, archiving
85–90 Almost no diff Moderate Daily default
70–80 Slightly soft, occasional blocks Small Thumbnails/web only
< 60 Clearly soft, color blocks Tiny Not recommended

Tips:

  • Don't bounce back and forth: HEIC → JPG → back to HEIC loses a little each time. Stop at JPG.
  • HEIC is already compressed: no need to crush on conversion; keep quality 85+.
  • Quality by use: 80 is fine for feed/group chat; 90+ for product pages/print.

For Developers: Command-Line Options

If you prefer scripting batch jobs, local dependencies can do it. The hard part is decoding HEVC, which needs libheif on the system.

# 0) Install the underlying library (per OS)
# macOS:  brew install libheif
# Ubuntu: sudo apt install libheif-utils
# Windows: use vcpkg or prebuilt libheif binaries

# 1) ffmpeg: single HEIC to JPG (q:v 2 ≈ high quality)
ffmpeg -i photo.heic -q:v 2 photo.jpg

# 2) ImageMagick (requires HEIC delegate installed)
magick photo.heic photo.jpg

# 3) Batch: convert all heic in current dir to jpg
for f in *.heic; do magick "$f" "${f%.heic}.jpg"; done

# 4) heif-convert (ships with libheif, lightest)
for f in *.heic; do heif-convert "$f" "${f%.heic}.jpg"; done

In Python, use pillow-heif:

import pillow_heif
from PIL import Image

pillow_heif.register_heif_opener()  # register HEIF decoder

img = Image.open("photo.heic")
img.convert("RGB")           # JPG has no alpha, convert first
img.save("photo.jpg", quality=92)

On the Node.js side, the in-browser converter uses the same idea — libheif compiled to WASM decodes locally in the page. The difference is the whole process stays on your machine, no server involved.


Common Misconceptions

Myth Reality
HEIC is sharper than JPG Sharper at the same size; at the same quality they're hard to tell apart. HEIC wins on "saves space"
Converting to JPG blurs it Quality 90+ is nearly identical; blur comes from crushing it too low
Online tools are faster Upload+download network time often beats local decode, and leaks privacy
No need to convert within Apple True, but anywhere outside Apple, JPG is still safest
One conversion = permanent loss Only one loss; keep the original HEIC to re-convert anytime

FAQ

Does converting to JPG visibly degrade quality? Visually, basically not. HEIC's edge is "higher quality at the same size"; after converting to a high-quality JPG, the difference is imperceptible.

Can I losslessly convert back to HEIC? No. JPG is lossy; converting back to HEIC only "freezes" the already-lost information, it won't get sharper. Always keep the original.

Can I convert on my phone? Yes. Our image tools are web pages; the mobile browser works the same, on both iOS and Android, fully locally.

What's the fastest way to handle a bunch of HEICs? Don't click one by one. Use the batch-capable local converter and drag them all in at once — faster than any manual method.

The colors look slightly "flatter" after converting? Likely P3 wide gamut squeezed back to sRGB. Invisible day-to-day; mind it for print/grading.

Will GPS location leak with the image? If the converter doesn't strip EXIF, yes. Before sharing publicly, run it through image compression, which clears metadata.


One-Line Decision

Got HEIC photos?
├── Only transferring between Apple devices → keep HEIC, saves the most space
└── Sending to others / uploading / printing
     ├── Need transparency → convert to PNG
     └── Just need compatibility → convert to JPG (quality 90)
          ├── Still too big? → compress again /en/image/compress
          ├── Dimensions inconsistent? → /en/image/resize
          └── Want a modern format? → /en/image/convert (WebP/AVIF)

Bookmark this article. Next time someone sends an unopenable .heic, just send them the decision tree above. To also optimize image size, the image compression guide has a more systematic take on format choice.

Try these browser-local tools — no sign-up required →

#HEIC#JPG#iPhone照片#格式转换#隐私#本地处理