Novus Stream Solutions
All tutorials

Novus Convert

Convert iPhone HEIC & HEIF photos to JPG

Turn a whole camera roll of iPhone HEIC and HEIF photos into JPG that any app or uploader accepts, decoded locally in the browser and never uploaded, then optionally shrink the results at /compress.

Novus Convert tutorial turning a batch of iPhone HEIC and HEIF camera-roll photos into universal JPG files locally in the browser

Your iPhone saves photos as HEIC or HEIF by default, which keeps the camera roll small but creates a compatibility problem the moment a photo leaves the phone. Older devices, many web uploaders, form fields, and some desktop apps still do not open HEIC, so a picture that looks perfect on the phone can arrive as a rejection or a gray box somewhere else. JPG solves that, because nothing refuses a JPG.

This guide is the start-to-finish version of that one conversion: move a camera roll onto your computer, load it as a batch into Novus Convert, set JPG, and download real, validated JPG files. The HEIC and HEIF decoding runs through a local WebAssembly worker, so your photos are converted on your own device and never uploaded. Choosing between JPG, PNG, and WebP in general is a separate question; here the goal is narrow and practical — iPhone photos that open anywhere.

Contents
  1. 1.1. Understand why the iPhone saves HEIC and what JPG fixes
  2. 2.2. Get the photos onto your computer and open the converter
  3. 3.3. Set JPG as the output
  4. 4.4. Convert, and let the validation gate check each file
  5. 5.5. Watch the daily HEIC allowance and save before you close
  6. 6.6. Optionally shrink the JPGs at /compress

Two ways to finish

The whole roll to JPG

Set JPG once across every row when the entire camera roll is headed for the same universal format. This is the common case.

A few need something else

Set the output per row when one or two photos should stay as PNG or go to WebP for the web, and leave the rest on JPG.

  1. 1

    1. Understand why the iPhone saves HEIC and what JPG fixes

    The iPhone stores photos as HEIC or HEIF because that container holds the same picture at roughly half the size of a JPG. On the phone this is invisible and helpful. The trouble starts when the file travels: a lot of software outside the Apple world still does not read HEIC, so an upload form rejects it, an older laptop shows nothing, or a colleague opens a blank thumbnail.

    JPG is the universal photo format. Every device, browser, uploader, and image app accepts it without question. Converting HEIC or HEIF to JPG trades a little file size for a file that opens everywhere, and that trade is almost always worth it the moment a photo needs to leave your phone. This tutorial does one thing: it gets iPhone photos into JPG cleanly. It is not the broader guide to picking between formats — that is a different walkthrough — because for a camera roll headed to another app or person, the answer is simply JPG.

    • HEIC and HEIF are small on the phone but often rejected elsewhere.
    • JPG is slightly larger but opens on any device, uploader, or app.
    • This guide converts one direction only: iPhone photos to JPG.
  2. 2

    2. Get the photos onto your computer and open the converter

    First move the HEIC or HEIF files off the phone. AirDrop to a Mac, a cable to a PC, an iCloud download, or an email to yourself all work — you just need the actual files where your browser can reach them. Then open convert.novusstreamsolutions.com/convert and drag the whole set in at once, or pick them with the file chooser. A camera roll is a batch by nature, and the queue is built to take many files together rather than one at a time.

    HEIC and HEIF decode through a local WebAssembly worker that loads on demand the first time it is needed. That means the photos are read and re-encoded on your own device; they are never sent to a conversion server. For a personal camera roll this is the whole point, because private pictures stay on your machine from start to finish.

    Each file is identified by its signature rather than its filename, so a photo that was renamed to end in .jpg but is still HEIC inside is caught here and offered the correct outputs. You do not have to trust the extension, and neither does the converter.

    • Transfer the files via AirDrop, cable, iCloud, or email first.
    • Drag the whole camera roll into /convert as one batch.
    • Decoding runs in a local WebAssembly worker, not on a server.
  3. 3

    3. Set JPG as the output

    Every row in the queue carries its own output selector. For iPhone photos, set it to JPG. When the entire roll is going to JPG — the usual situation — set the output once across the compatible rows instead of clicking through every file. When only a handful should go elsewhere, override those rows individually and leave the rest on JPG.

    JPG is the correct target whenever compatibility is the goal. If one specific photo is headed for a modern website instead of an uploader or another person, WebP is available as a per-row choice and produces a smaller file at similar quality. That is a format-choice decision rather than part of this workflow, though, so keep it to the few photos that truly need it. For getting a camera roll into a format that opens anywhere, JPG is the answer for every row.

    • Set JPG once across the whole roll for the common case.
    • Override individual rows only when a photo needs PNG or WebP.
    • Signatures decide which outputs each row is allowed to offer.
  4. 4

    4. Convert, and let the validation gate check each file

    Run the batch and let each row finish. Every photo decodes locally and re-encodes to JPG, and the download control appears only after the result passes a decodability check. A file that reaches your downloads folder is therefore a structurally real JPG, not a HEIC wearing a renamed extension. If a single photo fails — a corrupt file, or an unusual internal variant the decoder cannot read — that one row fails on its own without discarding the JPGs that already succeeded, and you can retry or remove it.

    Transparency does not enter into this at all. Camera photographs are fully opaque, so there is no alpha channel to preserve or lose. The white-background flattening that matters when you convert a transparent logo to JPG simply does not apply to a picture taken with the camera. You can send the whole roll to JPG without thinking about backgrounds.

  5. 5

    5. Watch the daily HEIC allowance and save before you close

    HEIC and HEIF downloads share a daily allowance of 15, tracked in your browser and reset by the local calendar day. The remaining count sits beside the download control, and each downloaded item counts once. For a small set of photos this never comes up; for a very large roll converted in one sitting, it is the number to keep an eye on. The app is free to use, but free is not the same as unlimited.

    Results live behind temporary object URLs in the current session. Removing a job or closing the tab revokes them, so download and save every JPG you want before you leave the page. Nothing is stored on a server for you to return to later — the finished files exist only in the places where you save them.

  6. 6

    6. Optionally shrink the JPGs at /compress

    Converting HEIC to JPG can make a file larger, because HEIC was the more efficient container to begin with. If the new JPGs need to fit an email limit, an upload cap, or a page-weight budget, the separate compression surface at convert.novusstreamsolutions.com/compress re-encodes JPG, PNG, and WebP with an adjustable quality control and reports the measured result size before you download.

    Conversion and compression stack cleanly and stay separate on purpose. Convert the roll to JPG at /convert, then take those JPGs to /compress and lower the quality until the size fits the destination. The /compress surface changes size, not format, so you keep the JPG files you just made. That re-encoding also runs locally in the browser, so the photos still never leave your device.

    • /convert changes format; /compress changes size.
    • Compress JPG, PNG, or WebP with a visible quality control.
    • The measured output size is shown before you download.

The whole job is compatibility, nothing fancier

iPhone photos already look right — the only real problem is that HEIC and HEIF do not open everywhere. Convert the roll to JPG once, let the validation gate confirm each file is a genuine image, and you are done. Reach for the per-row WebP option or the /compress surface only when a specific photo has a specific extra need; the default path for a camera roll is simply JPG.

Frequently asked questions

Quick answers to common questions about this topic.

How do I convert iPhone HEIC photos to JPG?

Move the photos from the phone to your computer, open convert.novusstreamsolutions.com/convert, drag the whole set in, set the output to JPG once across the rows, and run the batch. Each file decodes locally and only becomes downloadable after it passes validation as a real JPG.

Are my iPhone photos uploaded when I convert them?

No. HEIC and HEIF decode through a local WebAssembly worker that loads in your browser, so the photos are read and converted on your own device and are never sent to a conversion server.

Why can I only download 15 HEIC or HEIF files a day?

HEIC and HEIF share a daily download allowance of 15, tracked in your browser and reset by the local calendar day. The remaining count appears beside the download control. The app is free, but the allowance keeps free from meaning unlimited.

Do I need to worry about transparency when converting camera photos to JPG?

No. Photographs from the camera are fully opaque, so there is no alpha channel to lose. White-background flattening only matters when you convert a transparent image such as a logo to JPG, which is not the case for a normal iPhone photo.