Open hpjansson opened 2 weeks ago
If you want to support several shapes, there are 3 sets that can easily be handled with the same converter as they provide the same colors and just need a chars lookup table change: Squares: β¬β¬π₯π§π¨π©π¦πͺπ«, they are in Unicode 12.0, but be aware that the first two might not look the same as the rest of the set in some fonts, or even render as monochrome symbols instead of Emojis. Circles: β«βͺπ΄π π‘π’π΅π£π€, they are in Unicode 12.0, and again the first two might look different. Hearts: π€π€β€οΈπ§‘πππππ€, this set is in Unicode 12.0 and should render as consistent color Emojis in all fonts.
And then there is the better but less supported one: Hearts (extended): π€π©Άπ€β€οΈπ§‘ππππ©΅ππ€π©·, this set is nicer as it provides 12 colors instead of 9 and the lighter gray and blue really help for many images, but it requires Unicode 15.0, so it should probably be a separate explicit choice.
First things first, there should be some way of testing these with multiple fonts. None of the emoji have a "canonical" exact color like 16 color ANSI does (sure you can customize them in most terminals, but traditionally ANSI art assumes the colors match the behavior of default VGA)
I tried installing many emoji fonts on a Linux system but they all caused conflicts and I haven't come up with a better way of testing for multiple emoji fonts. Some of the colors can vary wildly in hue, saturation and brightness across fonts.
So there needs to be a program that allows someone to quickly swap and compare emoji heart images in several popular fonts
@PhMajerus suggested color emoji/glyph support in #201. Especially the various color hearts are interesting. This requires:
ChafaSymbolMap
to import multicolor glyphs.CHAFA_SYMBOL_TAG_EMOJI
,CHAFA_SYMBOL_TAG_HEARTS
, or something like that.We could seize the opportunity to allow monochrome glyphs to be represented this way too (as grayscale coverage), using bigger 16x16 pixmaps for matching, then employ it automatically at high work factors to maximize quality.