It's interesting to see other people still making tools for HL, even after 20+ years!
Unfortunately sorting colors by frequency and then taking every Nth color causes a notable loss of quality. A median-cut or octree-based algorithm is more suitable, and dithering can further improve the results. For the tool I'm working on (WadMaker) I settled on using a modified median-cut algorithm and dithering with an adjustable scale. This produces results that are on-par and sometimes better than Wally, though for images with lots of distinct colors and gradients I haven't been able to beat IrfanView.
One thing that surprised me is just how deep this subject goes. Color clustering, perception, gamma correction, non-linear vs linear color spaces... the more I read the more I realize just how much more there is to learn.
Unfortunately sorting colors by frequency and then taking every Nth color causes a notable loss of quality. A median-cut or octree-based algorithm is more suitable, and dithering can further improve the results. For the tool I'm working on (WadMaker) I settled on using a modified median-cut algorithm and dithering with an adjustable scale. This produces results that are on-par and sometimes better than Wally, though for images with lots of distinct colors and gradients I haven't been able to beat IrfanView.
One thing that surprised me is just how deep this subject goes. Color clustering, perception, gamma correction, non-linear vs linear color spaces... the more I read the more I realize just how much more there is to learn.