Converted Photo Comes Out Black or Blank: The Usual Causes

Opening a newly converted JPG only to find a solid black rectangle is frustrating. The fix depends entirely on whether the problem is transparency, a half-copied file, or your browser running out of memory.

Step-by-step triage Browser-level fixes No extra software

A solid black square usually means transparency collapsed. HEIC supports an alpha channel for cutout stickers and removed backgrounds, while standard JPG does not. When an empty background is flattened into an 8-bit JPG without a fill colour, the transparent pixels default to zero—which is pure black.

A completely blank or half-grey image points to a broken file or a silent browser crash. If the HTML5 canvas runs out of memory during a big batch, it hands the encoder an empty grid. If the USB cable was pulled early, the bottom of the image simply is not there.

Wait five seconds before blaming the file. When you drop dozens of photos into a browser converter at once, the later images in the queue Often render black purely because the tab hit its RAM ceiling, not because the photos themselves are broken.

Triage: What Does the Bad JPG Actually Look Like?

Do not delete the original HEIC yet. Look closely at the bad JPG you got back, because the exact pattern of the failure tells you which part of the conversion pipeline broke.

What the JPG looks likeWhat actually failedThe immediate fix
Solid black all over, normal dimensionsBrowser HTML5 canvas hit its memory limitRefresh the tab and convert that single file alone
Subject is visible, background is pitch blackHEIC alpha channel (cutout) flattened to RGB zeroPlace the sticker on a white note before saving, or use PNG
Top slice of the photo is fine, rest is black or greyTruncated <code>mdat</code> box from an interrupted transferCopy the original file from the iPhone a second time
Tiny dimensions or strange silhouetteDecoder grabbed an auxiliary depth or gain mapRe-save as a standard photo on the phone first

Cause 1: Cutouts, Removed Backgrounds, and the Alpha Channel

Since iOS 16, pressing and holding a subject in the Apple Photos app lifts it out of the background. If you save or share that cutout, iOS writes a HEIC file with an alpha channel—an extra layer that marks the surrounding pixels as transparent.

The JPEG standard (ITU-T T.81) has no concept of transparency. Every pixel must have a solid red, green, and blue value. In raw pixel data, transparent areas are often stored as 0, 0, 0, 0 (red zero, green zero, blue zero, alpha zero). When a basic converter strips the fourth number to make a 3-channel JPG, you are left with 0, 0, 0—pitch black. If the subject itself was dark, the whole picture looks like a black box.

Cause 2: The Browser Canvas Ran Out of Memory

Browser-based converters decode the HEIC inside WebAssembly and paint the raw pixels onto an invisible HTML5 <canvas> element before exporting the JPG. Browsers strictly cap how much memory a single tab can allocate for canvas buffers.

When you drop a huge batch of 48-megapixel iPhone Pro photos into a tab, the browser may silently refuse to allocate the next canvas buffer. Instead of crashing the page, the canvas API often returns a blank, zeroed-out bitmap, which the encoder dutifully saves as a valid, solid-black JPG. We cover how this limit behaves in our guide on converting large batches in browser memory.

Cause 3: Truncated Files and Auxiliary Image Tracks

A HEIC file is an ISO Base Media container built out of boxes. The file header (meta) sits near the start, telling the decoder the image width and height, while the heavy compressed HEVC tiles sit inside the media data (mdat) box. If a Windows USB transfer stalls or an AirDrop gets cancelled right at the end, the header arrives intact, so the converter sets up a full-size canvas. When the decoder hits the missing bytes at the bottom, the remaining canvas tiles stay unfilled—showing up as a solid grey or black band.

Less commonly, a portrait-mode HEIC stores multiple images inside one container: the main photo, a monochrome disparity map for background blur, and an HDR gain map. If a file is slightly mangled, a basic parser might skip the primary image item and decode the 8-bit greyscale depth map instead, giving you a ghostly silhouette.

Step-by-Step: How to Isolate and Fix the Photo

  1. Close extra browser tabs, reload the converter page to clear the memory heap, and drop only the single HEIC file that failed.
  2. If that single file converts cleanly now, the file was fine all along—your previous batch simply exhausted the browser's canvas memory.
  3. If the single file still comes out black, inspect its file size in Finder or File Explorer. A normal iPhone photo is several megabytes; if yours is only a few kilobytes, the transfer truncated it and you must copy it off the phone again.
  4. If the file size looks normal but the image is still unreadable, work through our checklist for diagnosing a corrupted HEIC file to see if the container header itself is damaged.

Following those four steps in order takes under a minute and stops you from wasting time trying to repair a file when the browser merely needed a refresh.

Test That Single File Right Now

Open the HEIC to JPG converter in a fresh tab and drop just the one problem photo onto the page. It runs locally on your machine without uploading anything, and testing one file in isolation immediately tells you whether you were dealing with a memory limit or a damaged photo.

Your photos are decoded in your own browser — open the converter and see.

Related guides

First published: 30 October 2026