<?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: Zaire Prow</title>
    <description>The latest articles on DEV Community by Zaire Prow (@zaireprow).</description>
    <link>https://dev.to/zaireprow</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%2F4218629%2Ff66d6322-1fbb-47f4-b1ce-703cfbc18345.png</url>
      <title>DEV Community: Zaire Prow</title>
      <link>https://dev.to/zaireprow</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zaireprow"/>
    <language>en</language>
    <item>
      <title>How to Open HEIC Files on Windows 10: 5 Ways</title>
      <dc:creator>Zaire Prow</dc:creator>
      <pubDate>Sat, 31 Oct 2026 16:19:12 +0000</pubDate>
      <link>https://dev.to/zaireprow/how-to-open-heic-files-on-windows-10-5-ways-5bkh</link>
      <guid>https://dev.to/zaireprow/how-to-open-heic-files-on-windows-10-5-ways-5bkh</guid>
      <description>&lt;p&gt;A folder of iPhone photos on a Windows 10 PC is a specific kind of annoying. The filenames are all there, the file sizes look normal, and Photos either shows nothing or tells you that you need an extension.&lt;/p&gt;

&lt;p&gt;There are five ways out, and they split into two families: convert the files to something Windows already reads, or teach Windows to read HEIC. The second family has a price tag and an install step attached, so it is worth knowing exactly what you are buying.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the file will not open
&lt;/h2&gt;

&lt;p&gt;A &lt;code&gt;.heic&lt;/code&gt; is a HEIF container wrapping HEVC-compressed image data, and Windows does not include that decoder by default. Microsoft's own support article is blunt about it: you need two Store packages, and both are required "even if you only plan on using photos and not videos." Without them, Photos reports that an extension is needed.&lt;/p&gt;

&lt;p&gt;One more piece of context that affects how much you should invest here: Microsoft ended support for Windows 10 on 14 October 2025. Existing PCs keep running, but they stop receiving security updates unless they are enrolled in Extended Security Updates, which run through 12 October 2027. Spending money on Store codecs for a machine with a shrinking support window is a decision worth making consciously.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five options, side by side
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Install&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;th&gt;What you get&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Browser conversion&lt;/td&gt;
&lt;td&gt;Nothing&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;JPG copies; no upload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft HEIF + HEVC extensions&lt;/td&gt;
&lt;td&gt;Two Store packages&lt;/td&gt;
&lt;td&gt;HEIF free, HEVC US$0.99 (US Store)&lt;/td&gt;
&lt;td&gt;Apps can open HEIC; no JPG copies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CopyTrans HEIC&lt;/td&gt;
&lt;td&gt;Desktop program&lt;/td&gt;
&lt;td&gt;Free for personal use; business license on request&lt;/td&gt;
&lt;td&gt;Explorer previews, right-click convert to JPEG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IrfanView&lt;/td&gt;
&lt;td&gt;Program plus a HEIC codec&lt;/td&gt;
&lt;td&gt;Free for non-commercial use&lt;/td&gt;
&lt;td&gt;A viewer that opens HEIC once a codec is installed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adobe Photoshop&lt;/td&gt;
&lt;td&gt;Photoshop plus both extensions&lt;/td&gt;
&lt;td&gt;Paid subscription&lt;/td&gt;
&lt;td&gt;Open and edit HEIC in Photoshop&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Prices and terms were checked on 17 October 2026. Microsoft's Store pricing differs by region.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1: Convert to JPG, install nothing
&lt;/h2&gt;

&lt;p&gt;If the goal is to look at the photos, send them to someone, or drop them into a document, converting is faster than fixing the decoder situation.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open a current Chrome, Edge or Firefox.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Choose Files&lt;/strong&gt; and select the HEIC files from File Explorer, or drag them from the folder into the drop area.&lt;/li&gt;
&lt;li&gt;Adjust quality if you want a smaller output. The default is 90 out of 100.&lt;/li&gt;
&lt;li&gt;Save the JPGs individually, or grab the whole batch as a single archive.&lt;/li&gt;
&lt;li&gt;Open them in Photos, Windows Photo Viewer, or whatever you normally use.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The files are decoded and encoded on your PC; nothing is uploaded, and nothing is installed. There is no fixed file count, though your machine's RAM sets the real limit, and images above 16,777,216 pixels get scaled down proportionally with an on-screen notice when it happens.&lt;/p&gt;

&lt;p&gt;The catch, and it is a real one: you end up with JPG copies, not HEIC support. If a new batch of iPhone photos arrives next week, you do this again. Option 2 or 3 is the better fit for a recurring workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 2: Microsoft's two extensions
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Install &lt;strong&gt;HEIF Image Extension&lt;/strong&gt; from the Microsoft Store. Free; requires Windows 10 version 17763.0 or later.&lt;/li&gt;
&lt;li&gt;Add the &lt;strong&gt;HEVC Video Extensions&lt;/strong&gt; package. Costs US$0.99 (US Store) and needs Windows 10 build 16299.0 or newer.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Both are needed. The HEIF extension's own page says the HEVC package must also be installed to view images stored in &lt;code&gt;.heic&lt;/code&gt;, &lt;code&gt;.hif&lt;/code&gt; or &lt;code&gt;.heif&lt;/code&gt; files, so the free half alone does nothing useful.&lt;/p&gt;

&lt;p&gt;What you get for the money: Windows apps, including Photos, can open HEIC files. What you do not get: JPG copies. The extensions make HEIC readable, not convertible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 3: CopyTrans HEIC
&lt;/h2&gt;

&lt;p&gt;CopyTrans HEIC plugs HEIC support into Windows itself rather than into one application. Its site describes previewing and browsing HEIC images in File Explorer, opening them in Windows Photo Viewer on Windows 10 and 11, and right-clicking files to convert them to JPEG, PNG or PDF. It states a limit of 100 images per conversion run, and that conversion happens locally on your PC.&lt;/p&gt;

&lt;p&gt;It runs on everything from Windows 7 through 11. Personal use costs nothing. Businesses, schools and government bodies fall under a commercial license, priced per machine and quoted individually.&lt;/p&gt;

&lt;p&gt;For someone who regularly receives HEIC files on a Windows machine and wants Explorer thumbnails without opening anything, this is the closest match on the list.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 4: IrfanView
&lt;/h2&gt;

&lt;p&gt;IrfanView occupies the small-and-quick end of the Windows viewer market: it starts fast, costs nothing for non-commercial use, and runs on both Windows 10 and 11. HEIC is not something it understands unassisted. Its FAQ is explicit that a codec must be installed first, and lists three paths:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft's extensions, specifically "HEVC Video Extensions from Device Manufacturer" plus HEIF Image Extensions. Note that this is a different Store package from the one in option 2, which is exactly the sort of detail that wastes an afternoon.&lt;/li&gt;
&lt;li&gt;A freeware HEIC codec.&lt;/li&gt;
&lt;li&gt;The CopyTrans HEIC codec, free for personal use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you already use IrfanView for everything else, adding a codec is cheap. If you do not, installing a viewer in order to install a codec to view one folder of photos is a lot of steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 5: Photoshop
&lt;/h2&gt;

&lt;p&gt;Photoshop will open HEIC on Windows, but not on its own: Adobe's requirement is that both the HEIF and HEVC extensions be installed from Microsoft first. So even the paid route depends on the same two Store packages.&lt;/p&gt;

&lt;p&gt;This only makes sense if you already pay for Photoshop and want to edit the photos, not just look at them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing between them
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A few photos you need to view or send today:&lt;/strong&gt; browser conversion. Zero install, nothing uploaded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You receive HEIC regularly and want it to just work:&lt;/strong&gt; Microsoft's two extensions, or CopyTrans for personal use if Explorer thumbnails matter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You want one lightweight viewer for everything:&lt;/strong&gt; IrfanView plus a codec.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Photo editing is your job:&lt;/strong&gt; Photoshop, still paired with Microsoft's extensions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Preventing the problem instead of fixing it
&lt;/h2&gt;

&lt;p&gt;If the photos come from an iPhone, Apple says photos imported to a PC "might be converted to JPEG." To keep the HEIC originals instead, open Settings &amp;gt; Apps &amp;gt; Photos on the iPhone and select Keep Originals. To make the phone capture JPEG from now on, change Settings &amp;gt; Camera &amp;gt; Formats to Most Compatible.&lt;/p&gt;

&lt;p&gt;Neither setting helps with the folder you have in front of you. They help with the next one.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I maintain heicly.io, the browser converter described in option 1. Options 2 through 5 are Microsoft, CopyTrans, IrfanView and Adobe products; they are listed because converting is the wrong answer when you need HEIC support rather than a one-off JPG copy.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://heicly.io/blog/open-heic-files-windows-10/" rel="noopener noreferrer"&gt;heicly.io&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>windows</category>
      <category>windows10</category>
      <category>heic</category>
      <category>tooling</category>
    </item>
    <item>
      <title>HEIC vs JPG: File Size, Quality and Compatibility</title>
      <dc:creator>Zaire Prow</dc:creator>
      <pubDate>Sat, 31 Oct 2026 15:09:27 +0000</pubDate>
      <link>https://dev.to/zaireprow/heic-vs-jpg-file-size-quality-and-compatibility-22cp</link>
      <guid>https://dev.to/zaireprow/heic-vs-jpg-file-size-quality-and-compatibility-22cp</guid>
      <description>&lt;p&gt;Every HEIC-versus-JPG discussion eventually collapses into a single sentence: Apple's format is more efficient, and the rest of the world pretends it does not exist. That is accurate, but it is not actionable. What you need to know is how much smaller, how much worse, and where the file will fail to open.&lt;/p&gt;

&lt;p&gt;So this is the practical version: spec facts, a size measurement on three real phone photos, and a decision rule at the end.&lt;/p&gt;

&lt;h2&gt;
  
  
  Side by side
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;HEIC&lt;/th&gt;
&lt;th&gt;JPG&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Nature&lt;/td&gt;
&lt;td&gt;HEIF container wrapping HEVC-compressed picture data&lt;/td&gt;
&lt;td&gt;JPEG, the format photos defaulted to for three decades&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Specification&lt;/td&gt;
&lt;td&gt;HEIF, ISO/IEC 23008-12&lt;/td&gt;
&lt;td&gt;ISO/IEC 10918-1 and ITU-T T.81, ratified 1992&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Size at equal perceived quality&lt;/td&gt;
&lt;td&gt;Smaller, per Apple's own description&lt;/td&gt;
&lt;td&gt;Larger; measured at 1.4–1.7x the HEIC at quality 90&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Payload&lt;/td&gt;
&lt;td&gt;Several images, burst sets, alpha, depth maps, up to 16 bits/sample&lt;/td&gt;
&lt;td&gt;Normally one picture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Opens in a browser&lt;/td&gt;
&lt;td&gt;Safari 17+ only&lt;/td&gt;
&lt;td&gt;Every browser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Opens on Windows&lt;/td&gt;
&lt;td&gt;Only with Microsoft's HEIF and HEVC packages&lt;/td&gt;
&lt;td&gt;Out of the box&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  So what is a HEIC file, really
&lt;/h2&gt;

&lt;p&gt;When an iPhone writes &lt;code&gt;.heic&lt;/code&gt;, it is producing a HEIF container whose image payload was encoded with HEVC. Apple brought that combination to iOS 11 and macOS High Sierra, and its stated pitch is straightforward: stronger compression than JPEG or H.264 without a visible drop in quality, so photos eat less of your phone and less of iCloud.&lt;/p&gt;

&lt;p&gt;The container matters more than people assume. HEIF was designed to hold a bundle rather than a single frame: burst sequences, alpha transparency, depth information used for portrait effects, and sample depths beyond the 8 bits that consumer cameras traditionally used, up to 16.&lt;/p&gt;

&lt;p&gt;It is also not an Apple monopoly. Two of the three phones I measured below are Samsungs, and both wrote HEIC natively.&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers, from three real photos
&lt;/h2&gt;

&lt;p&gt;Three 12-megapixel shots, converted in desktop Chrome, sizes recorded. Worth stating plainly: these JPGs are new encodings derived from the HEIC, not the file an iPhone would have written had the camera been set to JPEG.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Phone (per Exif)&lt;/th&gt;
&lt;th&gt;HEIC&lt;/th&gt;
&lt;th&gt;quality 90&lt;/th&gt;
&lt;th&gt;quality 75&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;iPhone 7&lt;/td&gt;
&lt;td&gt;0.88 MB&lt;/td&gt;
&lt;td&gt;1.49 MB (1.70x)&lt;/td&gt;
&lt;td&gt;0.81 MB (0.92x)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iPhone 12 Pro&lt;/td&gt;
&lt;td&gt;1.72 MB&lt;/td&gt;
&lt;td&gt;2.55 MB (1.48x)&lt;/td&gt;
&lt;td&gt;1.52 MB (0.88x)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Samsung SM-A326B&lt;/td&gt;
&lt;td&gt;1.22 MB&lt;/td&gt;
&lt;td&gt;1.70 MB (1.40x)&lt;/td&gt;
&lt;td&gt;0.91 MB (0.74x)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;(MB here means 1,000,000 bytes. Capture date and camera metadata survive the conversion.)&lt;/p&gt;

&lt;p&gt;Read the middle column and the surprising headline appears: converting at the default quality makes the file &lt;em&gt;bigger&lt;/em&gt;, by 40 to 70 percent. The third column shows the escape hatch, quality 75, which lands at or below the original size while accepting more visible compression.&lt;/p&gt;

&lt;p&gt;There is a fourth data point worth knowing because it inverts the assumption entirely. A Samsung SM-S906U motion photo arrived as a 3.68 MB HEIC containing roughly 3.2 MB of embedded video. Stripping that video and keeping the still frame produced a 1.30 MB JPG, less than half the source. An unexpectedly huge HEIC is often a container with more than one thing inside it.&lt;/p&gt;

&lt;p&gt;None of these ratios are laws. They describe three photos, and your mileage will vary with scene complexity, ISO noise and how much the camera already smoothed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quality: what you actually lose
&lt;/h2&gt;

&lt;p&gt;Both formats throw information away. That is not a flaw unique to JPG; it is how consumer photo compression works. The extra cost of converting is a second generation: the decoder reconstructs pixels, then the JPG encoder approximates them again.&lt;/p&gt;

&lt;p&gt;Practical consequences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quality is a dial, not a switch.&lt;/strong&gt; Higher settings retain more detail and grow the file. Lower settings shrink it and soften it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Never chain conversions.&lt;/strong&gt; Going HEIC to JPG is one generation. Going JPG to JPG repeatedly stacks loss on loss.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The source is the archive.&lt;/strong&gt; If the photo matters, the HEIC stays.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is a precision trap too. A HEIF can carry 10-bit or deeper samples; a JPG written by a browser converter is 8 bits per channel. If you plan to grade or heavily edit the image later, converting to JPG first discards that headroom permanently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compatibility: this is not close
&lt;/h2&gt;

&lt;p&gt;If the question is "where will this file open," the answer is not a nuanced trade-off.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Browsers.&lt;/strong&gt; Only Safari 17 and newer, on Apple platforms, renders HEIC. Chrome, Firefox, Edge and Samsung Internet do not, which means an &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; tag pointing at a .heic file shows a broken image for most of your visitors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Windows.&lt;/strong&gt; Out of the box, nothing opens it. Microsoft sells an HEVC extension for US$0.99 and gives away a HEIF extension, and you need both.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upload forms and apps.&lt;/strong&gt; A rejection is usually a MIME-type check, and a JPG passes it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That asymmetry explains the entire conversion habit. HEIC optimizes storage. JPG optimizes reach. Most people need reach.&lt;/p&gt;

&lt;h2&gt;
  
  
  Decision rule
&lt;/h2&gt;

&lt;p&gt;Keep the HEIC when the photo never leaves your Apple ecosystem, when disk space is the binding constraint, or when you want the byte-exact file the camera produced.&lt;/p&gt;

&lt;p&gt;Make a JPG when you are sending the photo to anyone whose device you do not control, when a form or app demands it, or when your editing software cannot read HEIC.&lt;/p&gt;

&lt;p&gt;A reasonable default for most people: keep the originals, and generate JPGs on demand rather than in bulk in advance. The originals cost you storage; converting everything prematurely costs you quality and gives you a folder of duplicates to manage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two iPhone settings that prevent the problem
&lt;/h2&gt;

&lt;p&gt;If the recurring annoyance is receiving HEIC rather than making it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Settings &amp;gt; Camera &amp;gt; Formats &amp;gt; Most Compatible&lt;/strong&gt; switches future captures to JPEG and H.264. Existing photos are unaffected, and new captures grow larger.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Settings &amp;gt; Apps &amp;gt; Photos &amp;gt; Keep Originals&lt;/strong&gt;, when disabled, lets imports into Photos, Image Capture or a PC arrive as JPEG.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And for anything already on disk, browser conversion avoids installing anything:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Drop the files onto the converter, or pick them with the file chooser.&lt;/li&gt;
&lt;li&gt;Dial the quality slider (it opens at 90) if you want a smaller result.&lt;/li&gt;
&lt;li&gt;Save the JPGs individually, or take the whole batch as a single ZIP.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Metadata behaviour worth noting: capture timestamp and camera details are preserved, GPS coordinates are dropped unless you explicitly enable them, images beyond 16,777,216 pixels are downscaled proportionally with a notice, three conversions run in parallel with files over 20 MiB serialized, and the archive is assembled in memory. One conversion is enough to make the page work offline afterwards.&lt;/p&gt;

&lt;p&gt;The one-line version, if you need to explain it to someone else: at quality 90 expect a JPG roughly 1.4 to 1.7 times the size of the HEIC, because the format buys reach with bytes. Treat the HEIC as the negative and the JPG as the print.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I maintain heicly.io, which is the converter these measurements came from. Format facts are drawn from Apple's documentation, the HEIF technical summary, JPEG.org and Can I use browser support data.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://heicly.io/blog/heic-vs-jpg/" rel="noopener noreferrer"&gt;heicly.io&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>heic</category>
      <category>jpeg</category>
      <category>photography</category>
      <category>apple</category>
    </item>
    <item>
      <title>Why I built a HEIC converter that never uploads your photos</title>
      <dc:creator>Zaire Prow</dc:creator>
      <pubDate>Sat, 31 Oct 2026 14:28:01 +0000</pubDate>
      <link>https://dev.to/zaireprow/why-i-built-a-heic-converter-that-never-uploads-your-photos-7pd</link>
      <guid>https://dev.to/zaireprow/why-i-built-a-heic-converter-that-never-uploads-your-photos-7pd</guid>
      <description>&lt;p&gt;I keep running into the same request: someone shoots photos on an iPhone, sends them to a Windows laptop, and the files won't open. The fix everyone reaches for is a "free online HEIC to JPG converter" — and almost every one of them means handing a stranger's photo library to a server you know nothing about.&lt;/p&gt;

&lt;p&gt;That trade always bothered me. Converting a photo format is arithmetic. There is no reason it needs to leave the device.&lt;/p&gt;

&lt;h2&gt;
  
  
  The constraint I started with
&lt;/h2&gt;

&lt;p&gt;HEIC is a HEIF container with images compressed by HEVC. Browsers can display it on Apple platforms but generally can't decode it elsewhere, which is why the conversion step exists at all.&lt;/p&gt;

&lt;p&gt;The obvious implementation is a server: receive file, run the converter, return JPG. It's ten lines of code and it scales. It also means every photo passes through a disk you now have to secure, retain policy for, and eventually delete. For a tool people use once or twice a decade, that is a lot of custody for very little compute.&lt;/p&gt;

&lt;p&gt;So the rule for the project was: the file never leaves the tab.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making it work offline
&lt;/h2&gt;

&lt;p&gt;The whole converter runs in the browser as WebAssembly. The page loads the decoder once, then decoding and re-encoding happen in the same tab. Nothing is posted anywhere.&lt;/p&gt;

&lt;p&gt;This turned out to be easy for me to verify, which is the part I actually care about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Load the page, convert one photo, then pull the network cable and convert another. It still works.&lt;/li&gt;
&lt;li&gt;Open the Network panel while converting and watch: no request carries your image.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'd rather ship something whose privacy claim you can falsify in ten seconds than something that asks you to trust a paragraph in a policy page.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I measured
&lt;/h2&gt;

&lt;p&gt;Claims about "smaller files" are cheap, so I ran real phone photos through it at quality 90 and at quality 75 and compared against the original HEIC:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Phone&lt;/th&gt;
&lt;th&gt;HEIC&lt;/th&gt;
&lt;th&gt;JPG q90&lt;/th&gt;
&lt;th&gt;JPG q75&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;iPhone 7&lt;/td&gt;
&lt;td&gt;0.88 MB&lt;/td&gt;
&lt;td&gt;1.49 MB (1.70x)&lt;/td&gt;
&lt;td&gt;0.81 MB (0.92x)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iPhone 12 Pro&lt;/td&gt;
&lt;td&gt;1.72 MB&lt;/td&gt;
&lt;td&gt;2.55 MB (1.48x)&lt;/td&gt;
&lt;td&gt;1.52 MB (0.88x)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Samsung SM-A326B&lt;/td&gt;
&lt;td&gt;1.22 MB&lt;/td&gt;
&lt;td&gt;1.70 MB (1.40x)&lt;/td&gt;
&lt;td&gt;0.91 MB (0.74x)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two things worth noting. At quality 90 — the default — the JPG is roughly 1.4 to 1.7 times the size of the HEIC. You are paying for compatibility in bytes. At quality 75 it flips and the JPG can actually come out smaller than the original HEIC, at a visible quality cost.&lt;/p&gt;

&lt;p&gt;I left the default at 90 because most people converting a photo want it to look the way it looked on the phone, not to win a file size contest.&lt;/p&gt;

&lt;h2&gt;
  
  
  The boring parts that matter
&lt;/h2&gt;

&lt;p&gt;A few decisions that don't demo well but matter in practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No sign-up. There's no account system, so there's nothing to sign into and no reason to collect an email.&lt;/li&gt;
&lt;li&gt;No quota. There's no server counting your conversions, so there's nothing to meter. The real limit is your device's memory.&lt;/li&gt;
&lt;li&gt;Batch mode downloads finished files as a ZIP. Converting 200 photos one at a time is a punishment.&lt;/li&gt;
&lt;li&gt;Quality is adjustable per conversion, and in batch you can set it for the whole batch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where it's honestly still rough
&lt;/h2&gt;

&lt;p&gt;JPG is lossy. If you need an archival copy, keep the original HEIC — no converter will give you back what the encoder threw away. Large images get downscaled to fit what the browser can process in one go. And on low-memory Android devices, big batches get flaky, because browsers there are less generous with memory than desktop Chrome.&lt;/p&gt;

&lt;p&gt;None of that is going to change. It's the shape of the problem, not a bug list.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it and check the claim
&lt;/h2&gt;

&lt;p&gt;It's free, it's at &lt;a href="https://heicly.io/" rel="noopener noreferrer"&gt;heicly.io&lt;/a&gt;, and it works the same in Chrome, Edge, Firefox and Safari. If you want to test the no-upload claim, unplug your network after the page loads and convert something.&lt;/p&gt;

&lt;p&gt;If you find a photo it chokes on, I'd genuinely like to know — that's the kind of bug that only shows up in other people's camera roll.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>privacy</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I turned the Window Dance trend into a one-photo generator</title>
      <dc:creator>Zaire Prow</dc:creator>
      <pubDate>Sat, 31 Oct 2026 12:15:51 +0000</pubDate>
      <link>https://dev.to/zaireprow/i-turned-the-window-dance-trend-into-a-one-photo-generator-536c</link>
      <guid>https://dev.to/zaireprow/i-turned-the-window-dance-trend-into-a-one-photo-generator-536c</guid>
      <description>&lt;p&gt;The Window Dance trend has an unusually rigid shot list. A phone films a dark apartment block at night from across the street. It zooms toward the one window still lit. Inside, someone dances alone next to a small speaker, notices the camera, grins, and pulls the curtain shut. Twelve seconds, portrait, done.&lt;/p&gt;

&lt;p&gt;It started on TikTok on 22 October 2026 as a CapCut template, and it is the second wave of the Window Peeper meme from two days earlier (the one where the person at the window is eating a burger). Pet versions showed up on 25 October and immediately did better than the human ones, which tells you something about the internet.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://windowdance.com/" rel="noopener noreferrer"&gt;Window Dance AI&lt;/a&gt; so that the whole shot gets generated from a single photo instead of swapped onto a fixed clip.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pipeline, briefly
&lt;/h2&gt;

&lt;p&gt;The interesting constraint is that the output has to feel like a &lt;em&gt;secret recording&lt;/em&gt;, not like a rendered scene. That means the camera has to behave like a hand holding a phone: slight drift, a real zoom, imperfect framing, a window that is the only light source in the frame.&lt;/p&gt;

&lt;p&gt;What the tool does with your upload:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A free AI photo check runs before payment. It rejects minors and obvious celebrities, because the premise only works if the person in the window is you, an adult, and you agreed to it. Group photos are out too, as is one person plus one pet. One subject per video.&lt;/li&gt;
&lt;li&gt;The photo becomes illustrated reference images that lock the face and the clothes.&lt;/li&gt;
&lt;li&gt;Seedance 2.0 generates the shot with those references: the building, the street, the lit window, the room, the speaker, the dance, the look at the camera, the curtain.&lt;/li&gt;
&lt;li&gt;The file lands as 12 seconds, 9:16, 720p, with an original AI instrumental plus room sound.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The audio decision is the one I keep getting asked about. The output deliberately does &lt;strong&gt;not&lt;/strong&gt; include the trend's TikTok original sound, because that audio is not mine to bake into a file. You add the trending sound inside TikTok when you post, which is also what keeps the video eligible for the trend's discovery.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it costs and what it does not do
&lt;/h2&gt;

&lt;p&gt;One-time credit packs, no subscription: 1 credit for $9.99, 3 for $19.99. One video is one credit, credits do not expire, a failed generation returns its credit automatically, and unused credits are refundable within 7 days. There is no free tier and no trial, so nothing here is disguised as free.&lt;/p&gt;

&lt;p&gt;No two-person videos. No filming through real windows, obviously. Everything is generated, and the videos should keep the AI label when posted.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you want the template instead
&lt;/h2&gt;

&lt;p&gt;Sometimes the CapCut template is the right answer: it is free, it is instant, and if all you want is your face on the standard clip, it does the job. The trade is that everybody's video then has the same room, the same outfit and the same moves. I wrote the honest comparison, including where the template wins, at &lt;a href="https://windowdance.com/window-dance-capcut-template" rel="noopener noreferrer"&gt;windowdance.com/window-dance-capcut-template&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Pets have their own page: &lt;a href="https://windowdance.com/pet-window-dance" rel="noopener noreferrer"&gt;windowdance.com/pet-window-dance&lt;/a&gt;. The stare at the end is the whole joke.&lt;/p&gt;

&lt;p&gt;The step-by-step version of the trend, including timings: &lt;a href="https://windowdance.com/how-to-do-the-window-dance-trend" rel="noopener noreferrer"&gt;windowdance.com/how-to-do-the-window-dance-trend&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Not affiliated with TikTok, CapCut, or any creator of the original videos.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>video</category>
      <category>sideprojects</category>
      <category>tiktok</category>
    </item>
    <item>
      <title>I built a Tiny Desk AI generator that turns one photo into a 15-second concert video</title>
      <dc:creator>Zaire Prow</dc:creator>
      <pubDate>Sat, 31 Oct 2026 08:21:58 +0000</pubDate>
      <link>https://dev.to/zaireprow/i-built-a-tiny-desk-ai-generator-that-turns-one-photo-into-a-15-second-concert-video-1e4a</link>
      <guid>https://dev.to/zaireprow/i-built-a-tiny-desk-ai-generator-that-turns-one-photo-into-a-15-second-concert-video-1e4a</guid>
      <description>&lt;p&gt;A friend sent me the Charlie Wilson 2023 Tiny Desk Concert clip and I kept thinking: everyone should get to be in that band.&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://tinydeskai.studio" rel="noopener noreferrer"&gt;https://tinydeskai.studio&lt;/a&gt; . You upload one to five photos. The first person sings lead, the second plays sax, the rest sing backup, and any empty spots get filled with AI musicians. About a minute later you get a 15-second vertical 720p MP4 with the stage audio, plus a no-music cut for platforms that flag copyrighted audio.&lt;/p&gt;

&lt;p&gt;Some things I learned building it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-person identity consistency is the hard part. Keeping the same face across a wide, moving stage shot meant generating a reference portrait per person first, then conditioning the video generation on those, rather than trying to do face swap afterwards.&lt;/li&gt;
&lt;li&gt;Audio sync matters more than resolution. People forgive 720p, they do not forgive the singer's mouth being off by 200ms.&lt;/li&gt;
&lt;li&gt;A no-music export is not optional. TikTok and Reels muting the whole clip is worse than shipping two files.&lt;/li&gt;
&lt;li&gt;Guests should not have to make an account. It is a guest checkout at $7.99 per video; adding a signup wall cut conversions badly in testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you try it, tell me what breaks. Especially curious about group photos with more than three people.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>showdev</category>
      <category>webdev</category>
      <category>video</category>
    </item>
  </channel>
</rss>
