Urgent.News

What's breaking now, across thousands of outlets.

Tech

Lossless PNG optimizing saved 11.4% on transparent icons and 24.8% on photos

My capstone project has a folder of PNG assets: app icons and stickers with soft transparent edges, plus a few photos that someone exported as PNG. A lossless optimizer like oxipng doesn't touch pixels, so it is tempting to expect it to save roughly the same share on every file. On 2026-11-05 I ran it on 12 PNGs from Wikimedia Commons, on an Apple M4 Mac. It saved 11.4% on the 6 transparent…

A lossless PNG optimizer, such as oxipng, can achieve significant reductions in file size without altering the image's visual quality. In a test conducted on 2026-11-05, the optimizer saved 11.4% on transparent app icons and 24.8% on photos from Wikimedia Commons. However, the gap between the savings for photos and transparency was not due to oxipng being better at one format over the other.

Instead, the optimizer utilizes two techniques: recompression and reduction. Recompression involves selecting different row filters and squeezing the deflate algorithm harder, while reduction entails rewriting the image in a cheaper color type when possible, such as dropping an alpha channel or converting to a palette when the image has 256 colors or fewer.

In the case of the transparent images, reductions contributed no significant savings, as there were no opportunities for dropping alpha channels or switching to a palette. Instead, the optimizer focused on recompression, which brought the file sizes from 444,175 bytes to 444,175 bytes. On the photo PNGs, reductions contributed 18.3% to the total saving, amounting to 24.8%.

Two of the three photos were in RGBA format with an alpha value of 255 in every pixel, while the third was grayscale with only 222 colors. The grayscale photo saw a 58.9% reduction in file size, while the other two photos reduced by 14.5%.

The study concluded that lossless tools like oxipng do not work better on photos in general. Photos that are saved as true RGB with thousands of colors are unlikely to benefit from reductions, just like the photos in this test. Instead, quantizing the photo to a palette with pngquant --quality=65-80 can achieve significant reductions, especially when paired with a subsequent lossless optimization.

A cheap check before running a lossless optimizer is to examine the color type and alpha range, then run the optimizer once with --nx and once without to determine the source of the savings.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Meilisearch is the easy part. The sync worker is where it hurts.

Suppose your product catalog lives in Postgres and search is ILIKE '%term%' . It works, nobody complains, and the table is small.

  • Meilisearch's sync worker causes challenges due to cursor-based pagination issues.
  • Switching to equal sign resolves cursor stalling but stalls worker at specific documents.
  • Composite index with updatedat timestamp and id field fixes worker stalling issue.

Pay-per-event pricing on Apify: what I got wrong

I publish data Actors on the Apify Store as Yappman Data, all on pay-per-event pricing. This is a list of things I got wrong about pricing and charging, and what I did about each. It is not a recipe.

  • Initial belief about tier-priced events was incorrect; charges applied after 13 October
  • Platform limits max charge per run to account's remaining monthly usage
  • Run restarts may cause misalignment between charged-event counts and maximum charge

Retention Tools, Organized by the Job They Actually Do

"Retention" might be the most overloaded word in the subscription software catalog. Under it you will find analytics suites, cancel flows, dunning engines, loyalty programs, community platforms, and…

  • Retention tools are often listed as competitors, causing confusion
  • Organize tools by specific functions like prediction and analytics
  • Focus on neglected retention jobs rather than individual tools

The Agent Added an Inline Linter Disable Instead of Fixing What It Flagged

Quick answer: An inline linter disable is a debt marker, not a fix. When an agent adds // eslint-disable-next-line or a @ts-ignore comment to make a warning go away, it is suppressing a signal that…

  • Agents use inline linter disables as shortcuts instead of fixing underlying issues
  • Proper approach is to understand the rule, fix problematic code, and document rationale
  • Repository scan tracks inline disables to ensure disciplined use and prevent unchecked exceptions

More from Friday 6 November →