hpjansson / chafa

📺🗿 Terminal graphics for the 21st century.
https://hpjansson.org/chafa/
GNU Lesser General Public License v3.0
2.87k stars 60 forks source link

Sixel quality improvements #174

Open hpjansson opened 1 year ago

hpjansson commented 1 year ago

Discussed in https://github.com/hpjansson/chafa/discussions/173

Originally posted by **helma** October 4, 2023 I intend to use chafa as a previewer for my photos, but have sometimes problems with the rendering quality of slow color gradients (e.g. cloudy skies), that come out very quantized with distinct color bands. Crisp photos render however perfectly as sixels. I have tried chafa, notcurses, img2sixel and imagemagick and in general I can get the best results with the -I option of img2sixel, followed by magick, notcurses and chafa (my terminal is foot version: 1.14.0 +pgo +ime +graphemes -assertions from nixos 23.05). Here are the resulting sixel files, png images have been generated with sixel2img: Original (not very beautiful, but shows the effect very clearly): ![](https://files.pdp8.info/source.jpeg) `chafa source.jpeg > chafa.six` (Chafa version 1.12.4) ![](https://files.pdp8.info/chafa.png) `ncplayer -t0 -q -k -s scalehi source.jpeg > notcurses.six` (ncplayer version 3.0.9) ![](https://files.pdp8.info/notcurses.png) `magick source.jpeg -resize 1914x1188> sixel:- > magick.six` (Version: ImageMagick 7.1.1-18 Q16-HDRI x86_64 8c6cdf58e:20230923 https://imagemagick.org) ![](https://files.pdp8.info/magick.png) `img2sixel -I -w 1914 source.jpeg > img2sixel.six` (img2sixel 1.10.3) Conversion to png spoils it completely, but img2sixel gives by far the best approximation of the original with the `-I` option. The high color option may cause however artefacts at the bottom of some images (maybe related to ). ![](https://files.pdp8.info/img2sixel.png) Are there any options in chafa to improve sixel rendering of photos? Dithering can improve the appearance of this file, but I loose details in sharper shots. I would prefer to use chafa over the other options because of speed and active maintainance.
hpjansson commented 1 year ago

As mentioned in the discussion, there's currently no way for the user to get better quality.

Let's use this issue for improvements to the default quantizer and ways to trade off work/quality with the -w option.