Skip to content

Releases: hpjansson/chafa

Chafa 1.4.0

01 Apr 16:39
1.4.0
Compare
Choose a tag to compare

This release adds major features to both libchafa and the chafa
command-line tool.

  • Added sixel graphics support. Chafa will automatically produce sixels
    if the connected terminal supports it. It can also be forced using the
    new -f or --format flag. This is a new implementation written from the
    ground up to maximize throughput.

  • Added the --glyph-file option, which loads glyph-symbol mappings from
    any file format supported by FreeType (TTF, PCF, etc). This allows for
    custom font support and improved symbol selection.

  • Added the --speed option specifying animation speed. It accepts a
    unitless multiplier, a specific number of frames per second, or max
    for maximum throughput.

  • There are now two ways to assign colors to symbol cells. Formerly,
    this was done based on the average color of the covered area. The new
    default is to use the median color, which produces sharper edges,
    but is slightly more prone to high-frequency noise. The new option
    --color-extractor selects the method to employ.

  • When displaying multiple files, the default delay between files has
    been changed from three seconds to zero. Animations will still play
    through once. This can be overridden on the chafa command line with -d
    or --duration.

  • Minor tweaks to built-in symbols.

  • Performance improvements:

    • Halved pixel storage requirements from 64 bits to 32 bits, resulting
      in significant memory savings.
    • Now builds with -ffast-math, yielding a big speedup for DIN99d.

Chafa 1.2.2

02 Mar 00:19
1.2.2
Compare
Choose a tag to compare

This minor release fixes a bug causing builds linking with libchafa to fail.

  • Bug fixes:
    #34 Cannot compile example (found by @sallyx).

Chafa 1.2.1

15 Aug 02:05
1.2.1
Compare
Choose a tag to compare

This minor release fixes a few bugs and improves terminal detection.

  • Detect kitty and mlterm virtual terminals and apply optimal defaults accordingly.

  • Make Automake build more strict and fix a few compatibility nits.

  • Bug fixes:
    #30 - Failed to build on hurd-i386 (found by @cdluminate).
    [unfiled] - Crash on certain broken GIFs.

Chafa 1.2.0

04 Aug 18:41
1.2.0
Compare
Choose a tag to compare

This is a feature and performance release.

  • Added --dither, --dither-grain and --dither-intensity options. These allow for sub-cell dithering in quantized modes (none, 2, 16, 240 and 256). Especially beneficial when used with -p off.

  • Added API for ordered and diffusion-based dithering in quantization.

  • Added API support for multiple 8bpc pixel modes: RGB, BGR, RGBA, BGRA, ARGB, ABGR with either premultiplied or unassociated alpha channels.

  • Smooth scaling is now done internally, meaning libchafa consumers no longer need to prescale images.

  • Implemented a machine learning tool that can generate custom fonts for efficient image reproduction from a provided dataset. This is left uninstalled since it's still experimental (@cdluminate).

  • Throughput improvements:

    • GIF animations now start playing instantly.
    • GIF CPU overhead reduced by 75%, peak memory use down 95%-99% (!).
    • XWD common case CPU overhead down 60-70%, peak memory down 70%.
    • Additional halving of CPU overhead in 240- and 256-color modes.
    • Streamlined pixel pipeline for better parallelization.
  • Installation instructions:

    • New: Guix (Guy Fleury Iteriteka).
    • New: openSUSE (@jubalh).
  • Bug fixes:

    • [unfiled] Certain SVGs had transparency replaced with a white background (nemo).
    • [unfiled] -lm dependency belongs in libchafa, not frontend.

Chafa 1.0.1

18 Dec 20:17
1.0.1
Compare
Choose a tag to compare
  • Bug fixes:
    • [unfiled] - Bad geometry calculation when specifying one dimension and omitting the other.

Chafa 1.0.0

16 Dec 20:22
1.0.0
Compare
Choose a tag to compare

This release adds features, greatly improves performance and fixes several bugs. Programs written for the command line and libchafa interfaces in this release will be supported by future versions in the 1.y.z series without the need for modification or recompilation.

  • Added ability to specify "fill" symbols to use as halftone for better color approximation. This can be used to augment the regular symbol selection or to replace it (with --symbols none) for a different, purely intensity-based effect.

  • Improved preprocessing in 2-color and 16-color modes. This is optional (default: on) and consists of a contrast boost and, for the 16-color mode, an additional saturation boost. The new implementation lives in libchafa and does not rely on ImageMagick. It is multithreaded, and due to its specialized nature, much faster.

  • Added --watch option to continuously monitor a file.

  • Added more symbols:

    • Most of the ASCII range.
    • Braille range (#2, thanks to @kilobyte).
    • Miscellaneous math and scanline symbols.
    • More geometric symbols (black circle, triangles) (@cdluminate).
  • Throughput improvements:

    • Fast symbol candidate set reduction by median cut.
    • Parallel processing with threads.
    • Prescaling using bilinear interpolation instead of lanczos.
  • Installation instructions:

  • Bug fixes:

    • #1 - -c none produces pointless \e[0m after every line (found by @kilobyte).
    • #3 - Compile error (found by @lalyos).
    • #4 - AM_PROG_LIBTOOL is obsolete, replace it with LT_INIT (@eclipseo).
    • #5 - Port chafa to i386 architecture (@cdluminate).
    • #7 - Chafa should not return an error when being asked for --version (@cdluminate).
    • #10 - Fix detection of MagickWand methods (@felixonmars).
    • #11 - ImageMagick 7 support (found by @felixonmars).
    • #21 - chafa.c:547: pointless assignment (found by @dcb314).

Chafa 0.9.0

03 May 14:32
Compare
Choose a tag to compare
Chafa 0.9.0 Pre-release
Pre-release
  • Initial release.