<?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: Jack Liu</title>
    <description>The latest articles on DEV Community by Jack Liu (@cser700).</description>
    <link>https://dev.to/cser700</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%2F4030392%2F8f1b3c9f-7a5f-4374-a752-66a7a81bfb6e.png</url>
      <title>DEV Community: Jack Liu</title>
      <link>https://dev.to/cser700</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cser700"/>
    <language>en</language>
    <item>
      <title>Why I Prefer Browser-Local Image Resizing for Small Files</title>
      <dc:creator>Jack Liu</dc:creator>
      <pubDate>Wed, 15 Jul 2026 12:21:54 +0000</pubDate>
      <link>https://dev.to/cser700/why-i-prefer-browser-local-image-resizing-for-small-files-1178</link>
      <guid>https://dev.to/cser700/why-i-prefer-browser-local-image-resizing-for-small-files-1178</guid>
      <description>&lt;p&gt;When a form asks for an image under 100KB, the obvious reaction is to search for an online compressor and upload the file. That works, but it also adds an unnecessary privacy decision: does this image need to leave the device at all?&lt;/p&gt;

&lt;h2&gt;
  
  
  A simpler workflow
&lt;/h2&gt;

&lt;p&gt;For ID photos, screenshots, receipts, and other personal images, I prefer tools that do the work locally in the browser. The browser reads the file, resizes or recompresses it, and gives the result back without sending the original to a remote server.&lt;/p&gt;

&lt;p&gt;My practical process is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start with the original JPG, PNG, or WebP.&lt;/li&gt;
&lt;li&gt;Set the required maximum size rather than guessing a quality percentage.&lt;/li&gt;
&lt;li&gt;Keep the aspect ratio unless the destination specifies exact dimensions.&lt;/li&gt;
&lt;li&gt;Preview the result at normal size, especially around text and faces.&lt;/li&gt;
&lt;li&gt;Save the new file under a different name so the original remains untouched.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why target size matters
&lt;/h2&gt;

&lt;p&gt;A generic “compress” button may produce a smaller file, but not necessarily one that meets a strict upload limit. A target-size workflow is more useful because it can adjust dimensions and quality together. For many document portals, a visually clean 80–95KB result is safer than a 99.9KB result that may fail after metadata is added.&lt;/p&gt;

&lt;p&gt;PNG is excellent for flat graphics and screenshots, while JPG is often better for photos. WebP can be efficient, but some older upload forms still accept only JPG or PNG. The destination's rules should decide the output format.&lt;/p&gt;

&lt;h2&gt;
  
  
  The tool I use
&lt;/h2&gt;

&lt;p&gt;I built &lt;a href="https://resizeimage.site/" rel="noopener noreferrer"&gt;Resize Image&lt;/a&gt; around this browser-local approach. It is useful when I need a quick image under a specific size and do not want the original uploaded as part of the resizing process. The link is included for context and disclosure: I am the maker.&lt;/p&gt;

&lt;p&gt;Local processing does not remove every privacy concern—you should still review the downloaded result and the site where you eventually upload it—but it reduces one unnecessary transfer.&lt;/p&gt;

&lt;p&gt;The larger lesson is simple: for lightweight image work, the browser is already capable enough. A small, focused local tool can be faster, more predictable, and easier to trust than sending every file through a remote processing queue.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>privacy</category>
    </item>
  </channel>
</rss>
