<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Shao Zheng</title>
    <description>The latest articles on DEV Community by Shao Zheng (@shaozheng).</description>
    <link>https://dev.to/shaozheng</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4184801%2Fb7d9c75f-987e-4080-a2e9-14bdddfbbc13.png</url>
      <title>DEV Community: Shao Zheng</title>
      <link>https://dev.to/shaozheng</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shaozheng"/>
    <language>en</language>
    <item>
      <title>Converting iPhone HEIC photos to PNG on Windows without installing anything</title>
      <dc:creator>Shao Zheng</dc:creator>
      <pubDate>Wed, 14 Oct 2026 13:15:24 +0000</pubDate>
      <link>https://dev.to/shaozheng/converting-iphone-heic-photos-to-png-on-windows-without-installing-anything-238a</link>
      <guid>https://dev.to/shaozheng/converting-iphone-heic-photos-to-png-on-windows-without-installing-anything-238a</guid>
      <description>&lt;p&gt;If you use Windows with an iPhone, you know the moment: you copy a batch of photos off an iPhone, double-click one, and Windows shrugs at a &lt;code&gt;.HEIC&lt;/code&gt; file. Maybe the Photos app offers to sell you an extension. Maybe your design tool, CMS, or ticketing system just rejects the upload.&lt;/p&gt;

&lt;p&gt;This post walks through the options for getting those files into PNG on Windows when you can't (or don't want to) install anything: locked-down work laptops, shared PCs, a parent's machine, or just a dislike of yet another codec pack.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why your iPhone hands you HEIC in the first place
&lt;/h2&gt;

&lt;p&gt;Since iOS 11, the iPhone camera saves photos as &lt;strong&gt;HEIF&lt;/strong&gt; images with the &lt;code&gt;.heic&lt;/code&gt; extension by default. The format stores the picture using HEVC (H.265) compression, which gives roughly half the file size of an equivalent JPG at similar visual quality. It can also hold extras: depth maps, Live Photo pairs, multiple frames, and wide-gamut colour.&lt;/p&gt;

&lt;p&gt;That's great for phone storage. It's less great for everything else, because HEVC is patent-encumbered, and many apps and websites simply never added a decoder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why PNG (and not JPG) as the target
&lt;/h2&gt;

&lt;p&gt;Most guides convert HEIC to JPG, and for sharing a holiday snap that's fine. PNG is the better choice when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You'll edit the image further.&lt;/strong&gt; PNG is lossless, so saving it again doesn't stack new compression artefacts on top of the ones HEVC already introduced. Re-saving a JPG ten times visibly degrades it; a PNG doesn't change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You need crisp edges.&lt;/strong&gt; Screenshots, scanned documents, receipts, whiteboards and anything with text stay sharp in PNG, where JPG adds ringing around letters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You need transparency later.&lt;/strong&gt; If the photo will become a cut-out product shot or a logo on a slide, PNG keeps an alpha channel; JPG can't.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A tool insists on it.&lt;/strong&gt; Plenty of upload forms, LMS platforms and old desktop apps accept PNG but not HEIC.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The trade-off is size: a 12 MP iPhone photo as PNG is often 10–20 MB, versus 2–3 MB as HEIC. For archiving or the web, you may want JPG or WebP instead (more on that in the companion post).&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1: Stop the problem at the source
&lt;/h2&gt;

&lt;p&gt;If you control the phone, you can make future photos easier:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Settings → Camera → Formats → Most Compatible&lt;/strong&gt; makes the camera shoot JPG instead of HEIC. You lose the storage savings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Settings → Photos → Transfer to Mac or PC → Automatic&lt;/strong&gt; tells iOS to convert to JPG when you copy over USB. This only works for the cable/Photos-import path, not for files you email, AirDrop, or pull from iCloud.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Neither gives you PNG, and neither helps with the 400 HEIC files already sitting in your Downloads folder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 2: What Windows can do on its own
&lt;/h2&gt;

&lt;p&gt;Windows 10 and 11 can display HEIC once two Microsoft Store extensions are present: &lt;strong&gt;HEIF Image Extensions&lt;/strong&gt; (free) and &lt;strong&gt;HEVC Video Extensions&lt;/strong&gt; (a small paid download on most machines, sometimes preinstalled by the PC maker). With both installed you can open a HEIC in Photos or Paint and use &lt;strong&gt;Save as → PNG&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That works, but:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's one file at a time.&lt;/li&gt;
&lt;li&gt;It requires a Store install, which many corporate machines block.&lt;/li&gt;
&lt;li&gt;The paid HEVC extension is exactly the "install something" we're trying to avoid.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can check whether you already have them under &lt;strong&gt;Settings → Apps → Installed apps&lt;/strong&gt; and search "HEVC". If both are there, Paint is a perfectly good one-off converter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 3: Convert in the browser, locally
&lt;/h2&gt;

&lt;p&gt;Modern browsers can run a HEIF decoder compiled to WebAssembly. That means a web page can decode your HEIC and re-encode it as PNG &lt;strong&gt;inside the browser tab&lt;/strong&gt;, without uploading the file to any server. Nothing gets installed, and it works the same on a locked-down laptop as on your own PC.&lt;/p&gt;

&lt;p&gt;This is worth stressing because "online converter" usually means "upload your photos to someone's server." For personal photos (kids, documents, ID cards, medical paperwork) that's a real privacy question. A local, in-browser converter sidesteps it: you can even disconnect from the network after the page loads and it still works.&lt;/p&gt;

&lt;p&gt;How to tell whether a converter is actually local:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open DevTools (&lt;strong&gt;F12&lt;/strong&gt;) → &lt;strong&gt;Network&lt;/strong&gt; tab before dropping files in.&lt;/li&gt;
&lt;li&gt;Convert a photo.&lt;/li&gt;
&lt;li&gt;Look for a large &lt;code&gt;POST&lt;/code&gt;/&lt;code&gt;PUT&lt;/code&gt; request carrying your file. If there isn't one, and the requests you see are just the page's own scripts, the conversion happened on your machine.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I built one of these, &lt;a href="https://fileontap.com/heic-to-png/" rel="noopener noreferrer"&gt;FileOnTap's HEIC to PNG converter&lt;/a&gt;, so take my recommendation with that in mind. It runs in the browser with no upload and no sign-up, and converts up to 10 photos per batch. Any tool that passes the DevTools check above is fine; the point is the approach, not the brand.&lt;/p&gt;

&lt;p&gt;Typical workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Copy the HEIC files from the phone to a folder on the PC (USB, iCloud for Windows, or a cloud drive).&lt;/li&gt;
&lt;li&gt;Open the converter page in Edge, Chrome or Firefox.&lt;/li&gt;
&lt;li&gt;Drag up to a batch of files onto the page.&lt;/li&gt;
&lt;li&gt;Download the PNGs (individually or as a zip) and check one opens in Photos.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Option 4: Command line, if you're allowed tools
&lt;/h2&gt;

&lt;p&gt;If you &lt;em&gt;can&lt;/em&gt; install things and want to script a few thousand files, the usual suspects are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ImageMagick&lt;/strong&gt; (built with libheif): &lt;code&gt;magick mogrify -format png *.heic&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;libheif's&lt;/strong&gt; own tool: &lt;code&gt;heif-convert IMG_0001.HEIC IMG_0001.png&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; with &lt;code&gt;pillow-heif&lt;/code&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pathlib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Path&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;PIL&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pillow_heif&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;register_heif_opener&lt;/span&gt;

&lt;span class="nf"&gt;register_heif_opener&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nc"&gt;Path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;photos&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;glob&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;*.heic&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;with_suffix&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are the right answer for big archives or automation. They're the wrong answer for "my manager needs this photo in the slide deck in five minutes on a laptop I can't install anything on."&lt;/p&gt;

&lt;h2&gt;
  
  
  Gotchas worth knowing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live Photos&lt;/strong&gt; are a HEIC still plus a separate &lt;code&gt;.MOV&lt;/code&gt;. Converting gives you the still only, which is usually what you want.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orientation:&lt;/strong&gt; iPhones often store rotation as metadata. A good converter applies it; a bad one gives you sideways PNGs. Check one file before converting a hundred.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Colour:&lt;/strong&gt; iPhone photos use the Display P3 colour space. Most converters map to sRGB or embed the profile. If colours look slightly washed out in one viewer and fine in another, it's a colour-profile issue, not lost data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Metadata:&lt;/strong&gt; PNG can carry EXIF, but many tools drop it. If you need GPS or capture dates preserved, test first, or keep the original HEIC files alongside.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File size:&lt;/strong&gt; don't be surprised when 30 MB of HEIC becomes 300 MB of PNG. That's lossless for you.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;Best route&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;One file, extensions already installed&lt;/td&gt;
&lt;td&gt;Paint → Save as PNG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can't install anything, a handful of photos&lt;/td&gt;
&lt;td&gt;Local in-browser converter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Thousands of files, scripting allowed&lt;/td&gt;
&lt;td&gt;ImageMagick / libheif / pillow-heif&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Want to avoid HEIC in future&lt;/td&gt;
&lt;td&gt;iPhone Camera → Most Compatible&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If you have another trick for HEIC on locked-down Windows machines, I'd like to hear it in the comments.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Shao Zheng&lt;/em&gt;&lt;/p&gt;

</description>
      <category>windows</category>
      <category>images</category>
      <category>iphone</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
