<?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: zjch022</title>
    <description>The latest articles on DEV Community by zjch022 (@zjch022).</description>
    <link>https://dev.to/zjch022</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%2F4144160%2F42ac5e14-192b-46a3-a345-d99f3d2dcfcf.png</url>
      <title>DEV Community: zjch022</title>
      <link>https://dev.to/zjch022</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zjch022"/>
    <language>en</language>
    <item>
      <title>How to Convert HEIC to PNG Without Uploading (Free)</title>
      <dc:creator>zjch022</dc:creator>
      <pubDate>Fri, 02 Oct 2026 05:17:45 +0000</pubDate>
      <link>https://dev.to/zjch022/how-to-convert-heic-to-png-without-uploading-free-405m</link>
      <guid>https://dev.to/zjch022/how-to-convert-heic-to-png-without-uploading-free-405m</guid>
      <description>&lt;p&gt;HEIC photos are great for saving storage space on your iPhone — until you need to share one with a Windows user, upload it to a website, or open it in an older editor. Then you get the dreaded "file format not supported" message.&lt;/p&gt;

&lt;p&gt;The standard advice is to upload your photos to a free online converter. But that means sending your personal photos — family, kids, ID documents, screenshots — to a stranger's server. If that makes you uncomfortable, good news: converting HEIC to PNG doesn't require uploading anything. It can happen entirely on your own device.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why uploading photos is a bad idea
&lt;/h2&gt;

&lt;p&gt;Most free online converters work the same way: your file goes up to a server, gets converted there, and you download the result. The problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Your photos leave your device.&lt;/strong&gt; Once uploaded, you have no control over how they're stored, cached, or logged.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Metadata travels with them.&lt;/strong&gt; iPhone HEIC files often contain EXIF data, including GPS coordinates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's slow in bulk.&lt;/strong&gt; Uploading dozens of photos on a slow connection is painful.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Option 1: FileOnTap — convert in your browser, nothing uploaded
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://fileontap.com/heic-to-png/" rel="noopener noreferrer"&gt;FileOnTap&lt;/a&gt; is a free HEIC to PNG converter that runs the entire conversion &lt;strong&gt;locally in your browser&lt;/strong&gt; using WebAssembly. Your photos never leave your computer — no upload, no server, no queue, no account.&lt;/p&gt;

&lt;p&gt;Here's how:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;a href="https://fileontap.com/heic-to-png/" rel="noopener noreferrer"&gt;FileOnTap's HEIC to PNG converter&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Drag and drop your &lt;code&gt;.heic&lt;/code&gt; files onto the page.&lt;/li&gt;
&lt;li&gt;Wait a few seconds while the conversion runs in your browser.&lt;/li&gt;
&lt;li&gt;Download the PNG files.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It works on Windows, macOS, Linux, and even your phone's browser. Free, no watermark.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I'm the developer of FileOnTap — I built it precisely because I didn't want my own photos uploaded to random servers.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 2: macOS Preview (built-in, Mac only)
&lt;/h2&gt;

&lt;p&gt;On a Mac you don't need any tool at all:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the HEIC file in Preview.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;File → Export&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;PNG&lt;/strong&gt; as the format and click &lt;strong&gt;Save&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Fully offline and free, but it converts one file at a time and doesn't help on Windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 3: Windows Photos with the HEIF extension (Windows only)
&lt;/h2&gt;

&lt;p&gt;On Windows 10/11, install the free &lt;strong&gt;HEIF Image Extensions&lt;/strong&gt; from the Microsoft Store. Then:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the HEIC file in the Photos app.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;… → Save as&lt;/strong&gt; and choose PNG.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Free and offline, but it requires a Microsoft Store install and only works on Windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which should you pick?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Want it done in seconds, on any device, without installing anything or uploading your files? → FileOnTap.&lt;/li&gt;
&lt;li&gt;On a Mac converting a single photo? → Preview is fine.&lt;/li&gt;
&lt;li&gt;On Windows and fine with installing a Store extension? → HEIF Image Extensions + Photos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key takeaway: you don't need to hand your private photos to a server just to change their format. Local conversion is faster, safer, and free.&lt;/p&gt;

</description>
      <category>heic</category>
      <category>images</category>
      <category>webdev</category>
      <category>tools</category>
    </item>
    <item>
      <title>Images to PDF in the Browser: A No-Upload Approach</title>
      <dc:creator>zjch022</dc:creator>
      <pubDate>Thu, 01 Oct 2026 23:05:57 +0000</pubDate>
      <link>https://dev.to/zjch022/images-to-pdf-in-the-browser-a-no-upload-approach-1em8</link>
      <guid>https://dev.to/zjch022/images-to-pdf-in-the-browser-a-no-upload-approach-1em8</guid>
      <description>&lt;p&gt;Turning a stack of images into a single PDF is one of those small tasks that comes up constantly: expense receipts, photographed whiteboards, scanned contracts, screenshots for a bug report. The usual answer is an online converter — upload your files to someone's server and download the result. It works, but your images take a detour through infrastructure you don't control.&lt;/p&gt;

&lt;p&gt;There's a better default: convert entirely in the browser, with zero uploads. Modern browsers give you everything needed to read image files, lay them out, and emit a real PDF without a single network request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "no upload" matters
&lt;/h2&gt;

&lt;p&gt;For casual conversions the stakes look low, but images are often the most sensitive files people handle. A photo of a receipt shows where you were and what you bought; a scanned ID or contract is self-evidently private. Uploading those to a free converter means trusting its retention policy, its security practices, and every third-party script it loads. A no-upload tool sidesteps all of that: the file never leaves your device, so there's nothing to leak, retain, or subpoena.&lt;/p&gt;

&lt;p&gt;There are practical wins too. No upload means no waiting on slow connections, no file-size caps designed to push you toward a paid tier, and the tool keeps working offline or on restricted networks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two ways to build it
&lt;/h2&gt;

&lt;p&gt;If you're implementing this yourself, two approaches cover nearly every use case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;jsPDF.&lt;/strong&gt; The pragmatic choice. Load your images, create a &lt;code&gt;jsPDF&lt;/code&gt; instance, and call &lt;code&gt;addImage()&lt;/code&gt; once per page. It handles JPEG and PNG natively, lets you set page dimensions per image, and produces a valid PDF in a handful of lines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;jsPDF&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;jspdf&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pdf&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;jsPDF&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;unit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pt&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nx"&gt;images&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pageWidth&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pdf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;internal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pageSize&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getWidth&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pageHeight&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;pageWidth&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;pdf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addPage&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="nx"&gt;pageWidth&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pageHeight&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="nx"&gt;pdf&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addImage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dataUrl&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;JPEG&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pageWidth&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pageHeight&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="nx"&gt;pdf&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="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;images.pdf&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get multi-page output, per-page sizing, and metadata support almost for free. The trade-off is bundle size (a few hundred KB) and less control over low-level PDF structure — fine for 99% of cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Canvas-first, hand-rolled layout.&lt;/strong&gt; Draw each image onto a &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt;, then feed the canvas into your PDF writer. This shines when you want multiple images per page, captions, margins, or watermarks — you compose the exact page in canvas pixels first, then export. It's more code and more decisions (DPI handling, text rendering), but you own every pixel.&lt;/p&gt;

&lt;p&gt;My rule of thumb: reach for jsPDF when each image gets its own full page; reach for canvas composition when the page itself is a designed layout.&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting it together: the moving parts
&lt;/h2&gt;

&lt;p&gt;Whichever route you take, the surrounding plumbing is the same:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Ingest.&lt;/strong&gt; A file input or drag-and-drop zone, &lt;code&gt;URL.createObjectURL()&lt;/code&gt; for each file, and &lt;code&gt;createImageBitmap()&lt;/code&gt; or an &lt;code&gt;Image&lt;/code&gt; element to read dimensions. Validate types up front — browsers happily hand you a &lt;code&gt;.heic&lt;/code&gt; renamed to &lt;code&gt;.jpg&lt;/code&gt;, so sniff the actual format.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Order.&lt;/strong&gt; Thumbnails with drag-to-reorder. Order is the one piece of state users always want to fix after the fact.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layout choice.&lt;/strong&gt; Fit-to-image pages (each page matches its image's aspect ratio) versus fixed pages like A4/Letter with the image centered. Fit-to-image is the most common expectation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory.&lt;/strong&gt; Process and release images one at a time on large batches; revoke object URLs when done. A 50-photo batch can otherwise eat a gigabyte of RAM.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  If you'd rather skip the code
&lt;/h2&gt;

&lt;p&gt;Not every conversion deserves a coding session. &lt;a href="https://fileontap.com/image-to-pdf/" rel="noopener noreferrer"&gt;FileOnTap's image-to-PDF tool&lt;/a&gt; implements exactly the approach above: drop in your images, reorder them, and export a PDF — all locally in your browser, no uploads, no account, no watermark.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I'm the developer of FileOnTap.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;The browser is a legitimate document-processing runtime now. File APIs for ingest, canvas for layout, and libraries like jsPDF for output cover the whole pipeline. Whether you build it or use a ready-made tool, keeping the conversion local is the simplest privacy policy there is: your files never go anywhere.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>tools</category>
      <category>images</category>
    </item>
    <item>
      <title>How to Convert HEIC to JPG on Any Device Without Uploading Your Photos</title>
      <dc:creator>zjch022</dc:creator>
      <pubDate>Wed, 30 Sep 2026 19:29:41 +0000</pubDate>
      <link>https://dev.to/zjch022/how-to-convert-heic-to-jpg-on-any-device-without-uploading-your-photos-32b1</link>
      <guid>https://dev.to/zjch022/how-to-convert-heic-to-jpg-on-any-device-without-uploading-your-photos-32b1</guid>
      <description>&lt;p&gt;If you've ever transferred photos from an iPhone to a Windows PC, you've probably met the HEIC problem. Your pictures arrive as &lt;code&gt;.heic&lt;/code&gt; files, and Windows Photos just stares at them blankly. Try to upload one to an older website or a messaging app, and you'll get a polite "file format not supported." So how do you convert HEIC to JPG without uploading your personal photos to a random server?&lt;/p&gt;

&lt;h2&gt;
  
  
  Why HEIC exists (and why it annoys you)
&lt;/h2&gt;

&lt;p&gt;HEIC (High Efficiency Image Container) is Apple's default photo format since iOS 11. It stores higher-quality images in roughly half the file size of JPEG — great for your phone's storage. The problem is compatibility: Windows 10 and 11 can't open HEIC out of the box (you need a paid codec from the Microsoft Store), older Android phones choke on it, and most web platforms still expect JPEG or PNG.&lt;/p&gt;

&lt;p&gt;The universal fix is converting HEIC to JPG. JPEG works on every device made in the last 25 years.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tip: let your iPhone do the conversion automatically
&lt;/h2&gt;

&lt;p&gt;Before we talk tools, check one iPhone setting. Go to &lt;strong&gt;Settings → Photos&lt;/strong&gt;, and under "Transfer to Mac or PC", select &lt;strong&gt;Automatic&lt;/strong&gt;. With this enabled, iOS converts HEIC photos to JPG automatically when you copy them to a computer via USB. It only works for wired transfers, but it solves the problem for many people with zero extra software.&lt;/p&gt;

&lt;p&gt;For photos sent via AirDrop, email, or already sitting on your PC as &lt;code&gt;.heic&lt;/code&gt; files, you'll need a converter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1: Windows Photos / built-in tools
&lt;/h2&gt;

&lt;p&gt;With the HEIF codec installed from the Microsoft Store, you can open HEIC in Photos and save a copy as JPEG. The codec costs a small fee in some regions, and the process is one file at a time — fine in a pinch, painful for a vacation's worth of photos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 2: Online converters — and the privacy catch
&lt;/h2&gt;

&lt;p&gt;Free online HEIC-to-JPG converters are everywhere, and they do work. But think about what you're uploading: family photos, vacation memories, screenshots with personal details. With most online converters, your images are uploaded to someone else's server, converted there, and hopefully deleted afterward. "Hopefully" is doing a lot of heavy lifting. For anything you'd rather keep private, uploading is a risk you don't need to take.&lt;/p&gt;

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

&lt;p&gt;The ideal setup is a converter that runs entirely on your own device: no uploads, no account, no waiting for a server. &lt;a href="https://fileontap.com/heic-to-png/" rel="noopener noreferrer"&gt;FileOnTap&lt;/a&gt; is a free tool that converts images 100% locally in your browser — your photos never leave your computer, tablet, or phone. It runs on any device with a modern browser, so the same workflow works on your Windows laptop, your old Android phone, or a borrowed Chromebook.&lt;/p&gt;

&lt;p&gt;Because everything happens client-side, there are no queues, no file-size games for the conversion itself, and no privacy policy to squint at. You can even use it offline-ish on a plane once the page has loaded. Batch conversion is supported too, so converting a whole folder of HEIC photos to JPG takes seconds, not an afternoon of clicking.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 60-second workflow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;a href="https://fileontap.com/heic-to-png/" rel="noopener noreferrer"&gt;FileOnTap&lt;/a&gt; in any browser.&lt;/li&gt;
&lt;li&gt;Drag in your &lt;code&gt;.heic&lt;/code&gt; photos (or select them from your phone).&lt;/li&gt;
&lt;li&gt;Choose JPG as the output format.&lt;/li&gt;
&lt;li&gt;Download the converted files — done, and nothing was ever uploaded.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Quick recap
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wired iPhone transfers:&lt;/strong&gt; enable &lt;em&gt;Automatic&lt;/em&gt; under Settings → Photos so iOS converts for you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A handful of files:&lt;/strong&gt; the Windows Photos app works if you have the HEIF codec.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private or many photos:&lt;/strong&gt; convert locally in your browser so your images never touch a server.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HEIC is a genuinely good format — the problem was never the format itself, just the compatibility gap. Convert locally and that gap disappears.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I'm the developer of FileOnTap.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>images</category>
      <category>webdev</category>
      <category>tools</category>
    </item>
    <item>
      <title>Compress Images Without Losing Quality: A Free Browser-Native Approach</title>
      <dc:creator>zjch022</dc:creator>
      <pubDate>Tue, 29 Sep 2026 11:31:47 +0000</pubDate>
      <link>https://dev.to/zjch022/compress-images-without-losing-quality-a-free-browser-native-approach-c5k</link>
      <guid>https://dev.to/zjch022/compress-images-without-losing-quality-a-free-browser-native-approach-c5k</guid>
      <description>&lt;h2&gt;
  
  
  What actually makes images heavy
&lt;/h2&gt;

&lt;p&gt;Camera sensors, design tools, and screenshot utilities all produce files far larger than the web needs. A full-screen PNG screenshot can be several megabytes; a JPEG straight from a camera can be 5–10 MB. That weight comes from three sources: dimensions (more pixels means more data), bit depth, and encoding efficiency. When that file ends up on a web page, every byte travels over the network and gets decoded on the visitor's device — slowing load times, hurting Lighthouse scores, and burning through mobile data plans.&lt;/p&gt;

&lt;p&gt;Before you can slim an image down, you need to know which of those three is the culprit. Most of the time, it's dimensions: people upload 5000-pixel-wide originals into 800-pixel slots. The second most common problem is the format: a PNG screenshot of a photo is often 3–5x heavier than an equivalent-quality JPEG.&lt;/p&gt;

&lt;h2&gt;
  
  
  The lossy-vs-lossless tradeoff
&lt;/h2&gt;

&lt;p&gt;Not all compression is the same, and this is where most people get confused.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lossless&lt;/strong&gt; (PNG, WebP lossless): preserves every pixel exactly. Great for text, logos, and UI graphics where razor-sharp edges matter — but file sizes stay large.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lossy&lt;/strong&gt; (JPEG, WebP lossy, AVIF): discards detail the human eye barely notices, shrinking files dramatically. Ideal for photos, gradients, and anything photographic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The widespread myth is that compression always ruins quality. In practice, a lossy encode at 80–85% quality is visually indistinguishable from the original for most photos, while cutting file size by 60–80%. The trick is choosing the right level: start around 80, zoom to 100%, and compare before and after. Look for banding in smooth gradients and smearing around fine detail — if you can't spot a difference, your visitors won't either.&lt;/p&gt;

&lt;p&gt;Format choice is the other half of the equation. WebP and AVIF typically beat JPEG by 25–35% at the same visual quality, and all modern browsers support them. JPEG remains the safe default for compatibility with older tooling, while PNG still rules for crisp graphics with text or transparency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do it entirely in your browser — nothing leaves your device
&lt;/h2&gt;

&lt;p&gt;You don't need Photoshop, a desktop app, or a server-side API for any of this. Modern browsers can decode, re-encode, and downscale images natively — via the Canvas API and WebAssembly-based encoders — so the entire compression job can happen on your own device.&lt;/p&gt;

&lt;p&gt;A practical example: &lt;a href="https://fileontap.com/compress-image/" rel="noopener noreferrer"&gt;FileOnTap's free image compressor&lt;/a&gt;. It runs 100% locally in your browser, so your files never leave your device. No upload queue, no account, no waiting on a server, and no privacy tradeoff — your photos stay yours. You drop in a PNG or JPEG, adjust the quality slider, preview the result side by side, and download a much smaller file. Because everything happens client-side, it works offline once the page is loaded and handles large files without choking.&lt;/p&gt;

&lt;p&gt;One more tip: downscale before you compress. If your blog displays images at 800px wide, resize to that first — serving a 5000px original wastes bandwidth no matter how well it's compressed, and downscaling alone can cut file size by 70% or more.&lt;/p&gt;

&lt;h2&gt;
  
  
  A workflow that actually works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Size to the display slot.&lt;/strong&gt; Resize to the dimensions you'll actually show (e.g., max 1600px wide for a hero image). No amount of compression fixes an oversized image.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pick the right format.&lt;/strong&gt; JPEG or WebP for photos; PNG for sharp graphics, screenshots with text, or anything needing transparency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compress lossy at 80–85 for photos.&lt;/strong&gt; Check smooth gradients for banding and fine detail for smearing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compare at 100% zoom&lt;/strong&gt; before shipping. Flip between original and compressed — if you can't tell them apart, you're done.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repeat for every asset.&lt;/strong&gt; Images are usually the single biggest contributor to page weight, so this loop pays off fast.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Done consistently, this workflow turns a 6 MB upload into a 300 KB file that looks identical on screen. That's faster pages, happier visitors, and lower hosting bills — all without installing anything or uploading a single file.&lt;/p&gt;

&lt;p&gt;Disclosure: I'm the developer of FileOnTap.&lt;/p&gt;

</description>
      <category>images</category>
      <category>webdev</category>
      <category>tools</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How to Convert HEIC to PNG on Windows (3 Free Methods)</title>
      <dc:creator>zjch022</dc:creator>
      <pubDate>Sat, 26 Sep 2026 10:35:56 +0000</pubDate>
      <link>https://dev.to/zjch022/how-to-convert-heic-to-png-on-windows-3-free-methods-5878</link>
      <guid>https://dev.to/zjch022/how-to-convert-heic-to-png-on-windows-3-free-methods-5878</guid>
      <description>&lt;p&gt;If you've ever transferred photos from an iPhone to a Windows PC, you've probably met the &lt;code&gt;.heic&lt;/code&gt; file — and watched Windows shrug at it. HEIC (High Efficiency Image Container) is Apple's default photo format: great quality at half the file size of JPEG, but poorly supported outside the Apple ecosystem.&lt;/p&gt;

&lt;p&gt;PNG, on the other hand, opens everywhere: every browser, every editor, every website upload form. Here's how to convert HEIC to PNG on Windows 10 and 11, free, with three methods from easiest to most hands-on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Method 1: Convert in Your Browser (No Install, No Upload)
&lt;/h2&gt;

&lt;p&gt;The fastest option — no software to install, works on any PC including locked-down work computers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open &lt;a href="https://fileontap.com/heic-to-png/" rel="noopener noreferrer"&gt;FileOnTap's HEIC to PNG converter&lt;/a&gt; in Edge, Chrome, or Firefox.&lt;/li&gt;
&lt;li&gt;Drag your &lt;code&gt;.heic&lt;/code&gt; file onto the page.&lt;/li&gt;
&lt;li&gt;Download the converted PNG.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The conversion runs entirely inside your browser — the file is decoded and re-saved on your own machine, nothing is uploaded to a server. That makes it safe even for sensitive photos, and you can verify it yourself by watching the network tab in devtools. Free, no account, no watermark.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Disclosure: I built FileOnTap.)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Method 2: Photos App + HEIF Image Extensions
&lt;/h2&gt;

&lt;p&gt;If you'd rather use built-in Windows tools:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install &lt;strong&gt;HEIF Image Extensions&lt;/strong&gt; from the Microsoft Store (free).&lt;/li&gt;
&lt;li&gt;Double-click your &lt;code&gt;.heic&lt;/code&gt; file to open it in the &lt;strong&gt;Photos&lt;/strong&gt; app.&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;…&lt;/strong&gt; (three dots) menu in the top toolbar → &lt;strong&gt;Save as&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;PNG&lt;/strong&gt; as the format, pick a folder, and save.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This works well one image at a time. The downside: it takes a Store install, and the components occasionally need reinstalling after major Windows updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Method 3: Paint (Quick and Dirty)
&lt;/h2&gt;

&lt;p&gt;Once HEIF Image Extensions is installed, Paint can do the job too:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Right-click the &lt;code&gt;.heic&lt;/code&gt; file → &lt;strong&gt;Open with&lt;/strong&gt; → &lt;strong&gt;Paint&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File → Save as → PNG picture&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Fast for a single file, but note that Paint strips EXIF metadata (camera info, location, timestamps). If metadata matters to you, use Method 1 or 2 instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stop HEIC at the Source (iPhone Setting)
&lt;/h2&gt;

&lt;p&gt;If you're tired of converting altogether, tell your iPhone to stop creating HEIC files:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Settings → Camera → Formats → Most Compatible&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;New photos will be saved as JPEG instead. (Existing HEIC files still need converting with one of the methods above.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Method Should You Pick?
&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;Browser (FileOnTap)&lt;/th&gt;
&lt;th&gt;Photos app&lt;/th&gt;
&lt;th&gt;Paint&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Install anything&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;HEIF extension&lt;/td&gt;
&lt;td&gt;HEIF extension&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keeps metadata&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Works on locked-down PCs&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Batch conversion&lt;/td&gt;
&lt;td&gt;One at a time&lt;/td&gt;
&lt;td&gt;One at a time&lt;/td&gt;
&lt;td&gt;One at a time&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For a quick, private, no-install conversion, the browser method wins. For viewing HEIC files regularly on your own PC, installing the HEIF extension is worth the one-time setup.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Found this useful? FileOnTap also converts HEIC to JPG/WebP and images to PDF — all in your browser, all free: &lt;a href="https://fileontap.com" rel="noopener noreferrer"&gt;fileontap.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>heic</category>
      <category>png</category>
      <category>windows</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
