<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[WebFileTools]]></title><description><![CDATA[WebFileTools]]></description><link>https://webfiletools.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 02 Nov 2026 10:13:41 GMT</lastBuildDate><atom:link href="https://webfiletools.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Why Your iPhone Photos Get Rejected as HEIC (and the Fix)]]></title><description><![CDATA[Why upload forms reject iPhone HEIC photos, and 3 ways to fix it: a Camera setting, a JPG export, or a one-line ImageMagick or libheif command.]]></description><link>https://webfiletools.hashnode.dev/why-your-iphone-photos-get-rejected-as-heic-and-the-fix</link><guid isPermaLink="true">https://webfiletools.hashnode.dev/why-your-iphone-photos-get-rejected-as-heic-and-the-fix</guid><category><![CDATA[heic]]></category><category><![CDATA[iOS]]></category><category><![CDATA[images]]></category><category><![CDATA[webdev]]></category><category><![CDATA[privacy]]></category><dc:creator><![CDATA[WebFileTools]]></dc:creator><pubDate>Sat, 31 Oct 2026 13:57:04 GMT</pubDate><content:encoded><![CDATA[<blockquote>
<p><strong>Disclosure:</strong> I'm Anthony Bolduc, and I built WebFileTools, the free converter mentioned near the end of this post. Everything before that section works without it.</p>
</blockquote>
<p>You take a photo with your iPhone, go to upload it to a government portal, a job application, or your own CMS, and you get "Unsupported file type." The file is called <code>IMG_4821.HEIC</code> and the form only accepts JPG or PNG.</p>
<p>I'm a solo developer in Québec, and people ask me about this all the time. Here's what's going on and how to fix it.</p>
<h2>What HEIC actually is</h2>
<p>HEIF (High Efficiency Image File Format) is a container format standardized by MPEG. You can put images inside it that are compressed with different codecs. Apple uses HEVC (H.265), the same codec it uses for video, and when the codec is HEVC the file extension is <code>.heic</code>.</p>
<p>Apple made it the default capture format in iOS 11 (2017) on iPhone 7 and later. The selling point is compression: for the same visual quality, a HEIC is much smaller than a JPEG. A single HEIF file can also hold several images and extra data, such as depth maps.</p>
<p>HEIC isn't broken. A lot of software just doesn't support it.</p>
<h2>Why forms and websites refuse it</h2>
<p>A few reasons stack on top of each other:</p>
<ul>
<li><strong>Browsers mostly can't display it.</strong> According to caniuse, Safari 17+ renders HEIC, but Chrome, Edge, and Firefox don't. If a site accepts the upload and then shows it in an <code>&lt;img&gt;</code> tag, most visitors would see a broken image.</li>
<li><strong>Licensing and complexity.</strong> HEVC comes with patent licensing, which is one reason browser vendors have favored royalty-free formats like AVIF instead.</li>
<li><strong>Server pipelines.</strong> Many backends resize and generate thumbnails with libraries that were built without HEIF support. The easy fix for the developer is a whitelist: <code>image/jpeg, image/png</code>.</li>
<li><strong>Windows.</strong> Out of the box, Windows needs the HEIF Image Extensions (and HEVC Video Extensions) from the Microsoft Store to open these files. So whoever is reviewing your upload may not be able to open it either.</li>
</ul>
<h2>Fix 1: Change the camera setting on your iPhone</h2>
<p>If you're tired of dealing with this, tell the camera to shoot JPEG:</p>
<p><strong>Settings → Camera → Formats → Most Compatible</strong></p>
<p>From then on, new photos are saved as JPEG (and videos as H.264). There are two catches. It only applies to photos you take <strong>after</strong> you change it. And the files will be bigger. Some video modes, like 4K at 60 fps, also require High Efficiency. You can switch back at any time.</p>
<p>iOS also converts to JPEG on its own when sharing to some destinations, which is why some uploads work and others don't.</p>
<h2>Fix 2: Export a JPG on your Mac</h2>
<p>If the photo is already on a Mac:</p>
<ul>
<li><strong>Preview:</strong> open the file, go to <strong>File → Export</strong>, choose <strong>JPEG</strong> as the format, and adjust the quality slider.</li>
<li><strong>Photos:</strong> select the image(s), go to <strong>File → Export → Export [n] Photos</strong>, and set <strong>Photo Kind</strong> to <strong>JPEG</strong>.</li>
</ul>
<p>This works offline and is fine for a few files.</p>
<h2>Fix 3: Use the command line</h2>
<p>For batches, or for something you want to script, there are two good open-source options.</p>
<p><strong>libheif</strong> (the reference HEIF library) includes a decoder CLI:</p>
<pre><code class="language-bash">heif-convert IMG_4821.HEIC IMG_4821.jpg
</code></pre>
<p>Since libheif 1.18 the tool is called <code>heif-dec</code>, and <code>heif-convert</code> is kept as a symlink. If one name isn't found, try the other. On some distros it ships in a separate "examples" or "tools" package.</p>
<p><strong>ImageMagick</strong> works too, as long as it was built with libheif:</p>
<pre><code class="language-bash"># check for HEIC support first
magick -list format | grep -i heic

# single file
magick IMG_4821.HEIC IMG_4821.jpg

# whole folder (writes .jpg next to each .heic)
magick mogrify -format jpg *.HEIC
</code></pre>
<p>(On ImageMagick 6 the commands are <code>convert</code> and <code>mogrify</code>, without the <code>magick</code> prefix.)</p>
<h2>The tool I built for this</h2>
<p>I'm the creator of <strong>WebFileTools</strong>, and one of its tools is a free HEIC converter: <a href="https://webfiletools.com/en/heic-to-jpg">https://webfiletools.com/en/heic-to-jpg</a>. It's meant for people who don't have a Mac or a terminal nearby. You drop in one or more HEIC files and get back JPG, PNG, or WebP. The conversion runs in your browser, so your photos aren't uploaded to a server to be converted. If you're on a phone, keep batches small, because mobile browsers have limited memory.</p>
<h2>Before you publish: strip the location data</h2>
<p>This matters more than the format. iPhone photos usually carry EXIF metadata, and that often includes <strong>GPS coordinates</strong> for where the photo was taken. If you post a photo taken at home, you may be posting your address.</p>
<p>A few ways to remove it:</p>
<ul>
<li><strong>On iPhone:</strong> in the share sheet, tap <strong>Options</strong> at the top and turn off <strong>Location</strong> before you send.</li>
<li><strong>exiftool:</strong> <code>exiftool -gps:all= photo.jpg</code> removes just the GPS tags. <code>exiftool -all= photo.jpg</code> removes all metadata. By default it keeps a <code>photo.jpg_original</code> backup.</li>
<li><strong>ImageMagick:</strong> add <code>-strip</code> when you convert, e.g. <code>magick IMG.HEIC -strip IMG.jpg</code>.</li>
</ul>
<p>Converting a file doesn't always remove its metadata, so check the output before you post it.</p>
<h2>Wrapping up</h2>
<p>HEIC is a good format that ended up in places that weren't ready for it. Until more browsers and backends support it (or the web moves to AVIF), the practical choices are to shoot in Most Compatible, export to JPEG, or script the conversion. And remove the GPS data before you post.</p>
<p><strong>What about you?</strong> Have you hit a site that rejects HEIC, or do you handle it on the server side in your own apps? Tell me in the comments.</p>
]]></content:encoded></item></channel></rss>