<?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: Jacob Enders</title>
    <description>The latest articles on DEV Community by Jacob Enders (@fish1).</description>
    <link>https://dev.to/fish1</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F301066%2F1d3b1bc2-6e18-4643-a797-4534492f3ed3.jpg</url>
      <title>DEV Community: Jacob Enders</title>
      <link>https://dev.to/fish1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fish1"/>
    <language>en</language>
    <item>
      <title>PNG can have better compression and quality than WebP</title>
      <dc:creator>Jacob Enders</dc:creator>
      <pubDate>Sun, 11 Feb 2024 16:21:45 +0000</pubDate>
      <link>https://dev.to/fish1/png-can-have-better-compression-and-quality-than-webp-3aic</link>
      <guid>https://dev.to/fish1/png-can-have-better-compression-and-quality-than-webp-3aic</guid>
      <description>&lt;p&gt;If you have flat color images with a very limited color range, you should consider sticking with the PNG file format. There is a tool &lt;a href="https://pngquant.org/"&gt;PNGQUANT&lt;/a&gt; that can offer superior compression and quality to googles &lt;a href="https://developers.google.com/speed/webp/docs/cwebp"&gt;CWEBP&lt;/a&gt; tool.&lt;/p&gt;

&lt;p&gt;Here are my general findings, let me know in the comments if there are better commands I should be using for CWEBP to make it perform as well as PNGQUANT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Base Image:&lt;/strong&gt; 284.1kB PNG&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsqmz6znxydc0x9jtbn7y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsqmz6znxydc0x9jtbn7y.png" alt="Image description" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command:&lt;/strong&gt; cwebp -near_lossless 0 -z 9 original.png -o o.webp&lt;br&gt;
&lt;strong&gt;Result:&lt;/strong&gt; 80.8kB WEBP&lt;br&gt;
&lt;strong&gt;Opinion:&lt;/strong&gt; Text looks decently crisp &amp;amp; it is compressed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyzxljbnufu0bzvgrqahg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyzxljbnufu0bzvgrqahg.png" alt="Image description" width="404" height="359"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlg6fy5mwm0jc1s9hsmm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlg6fy5mwm0jc1s9hsmm.png" alt="Image description" width="800" height="271"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo3hmuhavksuxmnotiq40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo3hmuhavksuxmnotiq40.png" alt="Image description" width="552" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command:&lt;/strong&gt; pngqaunt original.png --quality=0-50 -s1 -o o.png&lt;br&gt;
&lt;strong&gt;Result:&lt;/strong&gt; 54.4kB PNG&lt;br&gt;
&lt;strong&gt;Opinion:&lt;/strong&gt; Text looks even better &amp;amp; it is even more compressed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F46r2tcnybre9abg0nmq6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F46r2tcnybre9abg0nmq6.png" alt="Image description" width="468" height="370"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbbbdkbi4uwayh5ay7f5f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbbbdkbi4uwayh5ay7f5f.png" alt="Image description" width="686" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fahzv586im4uqekycj9xt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fahzv586im4uqekycj9xt.png" alt="Image description" width="539" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Command:&lt;/strong&gt; cwebp -q 35 original.png -o o.webp&lt;br&gt;
&lt;strong&gt;Result:&lt;/strong&gt; 53.7kB WebP&lt;br&gt;
&lt;strong&gt;Opinion:&lt;/strong&gt; The text looks worse, there is ugly artifacting &amp;amp; the compression doesn't even beat the PNG.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm9hf0v4be3v8to5oxaoh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm9hf0v4be3v8to5oxaoh.png" alt="Image description" width="433" height="326"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frpd4s2jo648hk0aopxgq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frpd4s2jo648hk0aopxgq.png" alt="Image description" width="800" height="268"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Famydq3vvq3jtxahnhytf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Famydq3vvq3jtxahnhytf.png" alt="Image description" width="594" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt; PNGQUANT provides the best image and compression quality for the specific types of images I need to store. I need to store many thousands of flat color images, so every kB counts.&lt;/p&gt;

</description>
      <category>png</category>
      <category>webp</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Getting Lots of Random Followers</title>
      <dc:creator>Jacob Enders</dc:creator>
      <pubDate>Fri, 11 Aug 2023 12:17:23 +0000</pubDate>
      <link>https://dev.to/fish1/getting-lots-of-random-followers-1i1j</link>
      <guid>https://dev.to/fish1/getting-lots-of-random-followers-1i1j</guid>
      <description>&lt;p&gt;I've made 30 comments on this website. And I have never written an actual post before. Yet for some reason every day I am getting multiple new followers, and I have over 100 now.&lt;/p&gt;

&lt;p&gt;Are all of these just bots?&lt;/p&gt;

</description>
      <category>meta</category>
    </item>
  </channel>
</rss>
