textimg: Emoji TTF font setting not working

Describe the bug

Emoji TTF font setting not working.

To Reproduce

Whatever the TTF font I use from the env. var. or with the option, emojis are not displayed.

# set emoji font in env var
export TEXTIMG_EMOJI_FONT_FILE=/usr/share/fonts/noto/NotoColorEmoji.ttf
export TEXTIMG_EMOJI_FONT_FILE=/usr/share/fonts/joypixels/JoyPixels.ttf
# from env var
echo ใ‚๐Ÿ˜ƒa๐Ÿ‘๏ผ๐Ÿ‘€ใ‚“๐Ÿ‘„ | ./textimg -i -o emoji.png
# explicit option
echo ใ‚๐Ÿ˜ƒa๐Ÿ‘๏ผ๐Ÿ‘€ใ‚“๐Ÿ‘„ | ./textimg -i -e /usr/share/fonts/joypixels/JoyPixels.ttf -o emoji.png

Output image:

emoji

Expected behavior

Emoji displayed as in the documentation https://github.com/jiro4989/textimg#emoji-font-ttf.

Environment (please complete the following information)

  • OS: ArchLinux
  • Version: textimg 3.1.7

About this issue

  • Original URL
  • State: open
  • Created a year ago
  • Comments: 22 (17 by maintainers)

Most upvoted comments

Yeah last comment there is 6 years ago and they are talking about unicode v3/4 while we are at Unicode 15 now. This library will not support emoji anytime soon if ever. So either i will stay that way or maybe anoter more modern lib can be used.

hmmโ€ฆ

  • Alphabet is OK
  • Emoji is NG
package main

import (
	"fmt"
	"strings"
)

func main() {
	// alphabet
	const startAlphabetCodePoint rune = 'A'
	const endAlphabetCodePoint rune = 'z'
	var sb strings.Builder
	appendRangeStrings(&sb, startAlphabetCodePoint, endAlphabetCodePoint)

	// emoji
	const startEmojiCodePoint rune = 0x1f600
	const endEmojiCodePoint = startEmojiCodePoint + 1000
	appendRangeStrings(&sb, startEmojiCodePoint, endEmojiCodePoint)
	fmt.Println(sb.String())
}

func appendRangeStrings(sb *strings.Builder, s, e rune) {
	counter := 1
	for i := s; i <= e; i++ {
		r := []rune{i}
		s := string(r)
		sb.WriteString(s)
		if counter%50 == 0 {
			sb.WriteString("\n")
		}
		counter++
	}
	sb.WriteString("\n")
}
$ go run main.go
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr
stuvwxyz
๐Ÿ˜€๐Ÿ˜๐Ÿ˜‚๐Ÿ˜ƒ๐Ÿ˜„๐Ÿ˜…๐Ÿ˜†๐Ÿ˜‡๐Ÿ˜ˆ๐Ÿ˜‰๐Ÿ˜Š๐Ÿ˜‹๐Ÿ˜Œ๐Ÿ˜๐Ÿ˜Ž๐Ÿ˜๐Ÿ˜๐Ÿ˜‘๐Ÿ˜’๐Ÿ˜“๐Ÿ˜”๐Ÿ˜•๐Ÿ˜–๐Ÿ˜—๐Ÿ˜˜๐Ÿ˜™๐Ÿ˜š๐Ÿ˜›๐Ÿ˜œ๐Ÿ˜๐Ÿ˜ž๐Ÿ˜Ÿ๐Ÿ˜ ๐Ÿ˜ก๐Ÿ˜ข๐Ÿ˜ฃ๐Ÿ˜ค๐Ÿ˜ฅ๐Ÿ˜ฆ๐Ÿ˜ง๐Ÿ˜จ๐Ÿ˜ฉ๐Ÿ˜ช๐Ÿ˜ซ๐Ÿ˜ฌ๐Ÿ˜ญ๐Ÿ˜ฎ๐Ÿ˜ฏ๐Ÿ˜ฐ๐Ÿ˜ฑ
๐Ÿ˜ฒ๐Ÿ˜ณ๐Ÿ˜ด๐Ÿ˜ต๐Ÿ˜ถ๐Ÿ˜ท๐Ÿ˜ธ๐Ÿ˜น๐Ÿ˜บ๐Ÿ˜ป๐Ÿ˜ผ๐Ÿ˜ฝ๐Ÿ˜พ๐Ÿ˜ฟ๐Ÿ™€๐Ÿ™๐Ÿ™‚๐Ÿ™ƒ๐Ÿ™„๐Ÿ™…๐Ÿ™†๐Ÿ™‡๐Ÿ™ˆ๐Ÿ™‰๐Ÿ™Š๐Ÿ™‹๐Ÿ™Œ๐Ÿ™๐Ÿ™Ž๐Ÿ™๐Ÿ™๐Ÿ™‘๐Ÿ™’๐Ÿ™“๐Ÿ™”๐Ÿ™•๐Ÿ™–๐Ÿ™—๐Ÿ™˜๐Ÿ™™๐Ÿ™š๐Ÿ™›๐Ÿ™œ๐Ÿ™๐Ÿ™ž๐Ÿ™Ÿ๐Ÿ™ ๐Ÿ™ก๐Ÿ™ข๐Ÿ™ฃ
๐Ÿ™ค๐Ÿ™ฅ๐Ÿ™ฆ๐Ÿ™ง๐Ÿ™จ๐Ÿ™ฉ๐Ÿ™ช๐Ÿ™ซ๐Ÿ™ฌ๐Ÿ™ญ๐Ÿ™ฎ๐Ÿ™ฏ๐Ÿ™ฐ๐Ÿ™ฑ๐Ÿ™ฒ๐Ÿ™ณ๐Ÿ™ด๐Ÿ™ต๐Ÿ™ถ๐Ÿ™ท๐Ÿ™ธ๐Ÿ™น๐Ÿ™บ๐Ÿ™ป๐Ÿ™ผ๐Ÿ™ฝ๐Ÿ™พ๐Ÿ™ฟ๐Ÿš€๐Ÿš๐Ÿš‚๐Ÿšƒ๐Ÿš„๐Ÿš…๐Ÿš†๐Ÿš‡๐Ÿšˆ๐Ÿš‰๐ŸšŠ๐Ÿš‹๐ŸšŒ๐Ÿš๐ŸšŽ๐Ÿš๐Ÿš๐Ÿš‘๐Ÿš’๐Ÿš“๐Ÿš”๐Ÿš•
๐Ÿš–๐Ÿš—๐Ÿš˜๐Ÿš™๐Ÿšš๐Ÿš›๐Ÿšœ๐Ÿš๐Ÿšž๐ŸšŸ๐Ÿš ๐Ÿšก๐Ÿšข๐Ÿšฃ๐Ÿšค๐Ÿšฅ๐Ÿšฆ๐Ÿšง๐Ÿšจ๐Ÿšฉ๐Ÿšช๐Ÿšซ๐Ÿšฌ๐Ÿšญ๐Ÿšฎ๐Ÿšฏ๐Ÿšฐ๐Ÿšฑ๐Ÿšฒ๐Ÿšณ๐Ÿšด๐Ÿšต๐Ÿšถ๐Ÿšท๐Ÿšธ๐Ÿšน๐Ÿšบ๐Ÿšป๐Ÿšผ๐Ÿšฝ๐Ÿšพ๐Ÿšฟ๐Ÿ›€๐Ÿ›๐Ÿ›‚๐Ÿ›ƒ๐Ÿ›„๐Ÿ›…๐Ÿ›†๐Ÿ›‡
๐Ÿ›ˆ๐Ÿ›‰๐Ÿ›Š๐Ÿ›‹๐Ÿ›Œ๐Ÿ›๐Ÿ›Ž๐Ÿ›๐Ÿ›๐Ÿ›‘๐Ÿ›’๐Ÿ›“๐Ÿ›”๐Ÿ›•๐Ÿ›–๐Ÿ›—๐Ÿ›˜๐Ÿ›™๐Ÿ›š๐Ÿ››๐Ÿ›œ๐Ÿ›๐Ÿ›ž๐Ÿ›Ÿ๐Ÿ› ๐Ÿ›ก๐Ÿ›ข๐Ÿ›ฃ๐Ÿ›ค๐Ÿ›ฅ๐Ÿ›ฆ๐Ÿ›ง๐Ÿ›จ๐Ÿ›ฉ๐Ÿ›ช๐Ÿ›ซ๐Ÿ›ฌ๐Ÿ›ญ๐Ÿ›ฎ๐Ÿ›ฏ๐Ÿ›ฐ๐Ÿ›ฑ๐Ÿ›ฒ๐Ÿ›ณ๐Ÿ›ด๐Ÿ›ต๐Ÿ›ถ๐Ÿ›ท๐Ÿ›ธ๐Ÿ›น
๐Ÿ›บ๐Ÿ›ป๐Ÿ›ผ๐Ÿ›ฝ๐Ÿ›พ๐Ÿ›ฟ๐Ÿœ€๐Ÿœ๐Ÿœ‚๐Ÿœƒ๐Ÿœ„๐Ÿœ…๐Ÿœ†๐Ÿœ‡๐Ÿœˆ๐Ÿœ‰๐ŸœŠ๐Ÿœ‹๐ŸœŒ๐Ÿœ๐ŸœŽ๐Ÿœ๐Ÿœ๐Ÿœ‘๐Ÿœ’๐Ÿœ“๐Ÿœ”๐Ÿœ•๐Ÿœ–๐Ÿœ—๐Ÿœ˜๐Ÿœ™๐Ÿœš๐Ÿœ›๐Ÿœœ๐Ÿœ๐Ÿœž๐ŸœŸ๐Ÿœ ๐Ÿœก๐Ÿœข๐Ÿœฃ๐Ÿœค๐Ÿœฅ๐Ÿœฆ๐Ÿœง๐Ÿœจ๐Ÿœฉ๐Ÿœช๐Ÿœซ
๐Ÿœฌ๐Ÿœญ๐Ÿœฎ๐Ÿœฏ๐Ÿœฐ๐Ÿœฑ๐Ÿœฒ๐Ÿœณ๐Ÿœด๐Ÿœต๐Ÿœถ๐Ÿœท๐Ÿœธ๐Ÿœน๐Ÿœบ๐Ÿœป๐Ÿœผ๐Ÿœฝ๐Ÿœพ๐Ÿœฟ๐Ÿ€๐Ÿ๐Ÿ‚๐Ÿƒ๐Ÿ„๐Ÿ…๐Ÿ†๐Ÿ‡๐Ÿˆ๐Ÿ‰๐ŸŠ๐Ÿ‹๐ŸŒ๐Ÿ๐ŸŽ๐Ÿ๐Ÿ๐Ÿ‘๐Ÿ’๐Ÿ“๐Ÿ”๐Ÿ•๐Ÿ–๐Ÿ—๐Ÿ˜๐Ÿ™๐Ÿš๐Ÿ›๐Ÿœ๐Ÿ
๐Ÿž๐ŸŸ๐Ÿ ๐Ÿก๐Ÿข๐Ÿฃ๐Ÿค๐Ÿฅ๐Ÿฆ๐Ÿง๐Ÿจ๐Ÿฉ๐Ÿช๐Ÿซ๐Ÿฌ๐Ÿญ๐Ÿฎ๐Ÿฏ๐Ÿฐ๐Ÿฑ๐Ÿฒ๐Ÿณ๐Ÿด๐Ÿต๐Ÿถ๐Ÿท๐Ÿธ๐Ÿน๐Ÿบ๐Ÿป๐Ÿผ๐Ÿฝ๐Ÿพ๐Ÿฟ๐Ÿž€๐Ÿž๐Ÿž‚๐Ÿžƒ๐Ÿž„๐Ÿž…๐Ÿž†๐Ÿž‡๐Ÿžˆ๐Ÿž‰๐ŸžŠ๐Ÿž‹๐ŸžŒ๐Ÿž๐ŸžŽ๐Ÿž
๐Ÿž๐Ÿž‘๐Ÿž’๐Ÿž“๐Ÿž”๐Ÿž•๐Ÿž–๐Ÿž—๐Ÿž˜๐Ÿž™๐Ÿžš๐Ÿž›๐Ÿžœ๐Ÿž๐Ÿžž๐ŸžŸ๐Ÿž ๐Ÿžก๐Ÿžข๐Ÿžฃ๐Ÿžค๐Ÿžฅ๐Ÿžฆ๐Ÿžง๐Ÿžจ๐Ÿžฉ๐Ÿžช๐Ÿžซ๐Ÿžฌ๐Ÿžญ๐Ÿžฎ๐Ÿžฏ๐Ÿžฐ๐Ÿžฑ๐Ÿžฒ๐Ÿžณ๐Ÿžด๐Ÿžต๐Ÿžถ๐Ÿžท๐Ÿžธ๐Ÿžน๐Ÿžบ๐Ÿžป๐Ÿžผ๐Ÿžฝ๐Ÿžพ๐Ÿžฟ๐ŸŸ€๐ŸŸ
๐ŸŸ‚๐ŸŸƒ๐ŸŸ„๐ŸŸ…๐ŸŸ†๐ŸŸ‡๐ŸŸˆ๐ŸŸ‰๐ŸŸŠ๐ŸŸ‹๐ŸŸŒ๐ŸŸ๐ŸŸŽ๐ŸŸ๐ŸŸ๐ŸŸ‘๐ŸŸ’๐ŸŸ“๐ŸŸ”๐ŸŸ•๐ŸŸ–๐ŸŸ—๐ŸŸ˜๐ŸŸ™๐ŸŸš๐ŸŸ›๐ŸŸœ๐ŸŸ๐ŸŸž๐ŸŸŸ๐ŸŸ ๐ŸŸก๐ŸŸข๐ŸŸฃ๐ŸŸค๐ŸŸฅ๐ŸŸฆ๐ŸŸง๐ŸŸจ๐ŸŸฉ๐ŸŸช๐ŸŸซ๐ŸŸฌ๐ŸŸญ๐ŸŸฎ๐ŸŸฏ๐ŸŸฐ๐ŸŸฑ๐ŸŸฒ๐ŸŸณ
๐ŸŸด๐ŸŸต๐ŸŸถ๐ŸŸท๐ŸŸธ๐ŸŸน๐ŸŸบ๐ŸŸป๐ŸŸผ๐ŸŸฝ๐ŸŸพ๐ŸŸฟ๐Ÿ €๐Ÿ ๐Ÿ ‚๐Ÿ ƒ๐Ÿ „๐Ÿ …๐Ÿ †๐Ÿ ‡๐Ÿ ˆ๐Ÿ ‰๐Ÿ Š๐Ÿ ‹๐Ÿ Œ๐Ÿ ๐Ÿ Ž๐Ÿ ๐Ÿ ๐Ÿ ‘๐Ÿ ’๐Ÿ “๐Ÿ ”๐Ÿ •๐Ÿ –๐Ÿ —๐Ÿ ˜๐Ÿ ™๐Ÿ š๐Ÿ ›๐Ÿ œ๐Ÿ ๐Ÿ ž๐Ÿ Ÿ๐Ÿ  ๐Ÿ ก๐Ÿ ข๐Ÿ ฃ๐Ÿ ค๐Ÿ ฅ
๐Ÿ ฆ๐Ÿ ง๐Ÿ จ๐Ÿ ฉ๐Ÿ ช๐Ÿ ซ๐Ÿ ฌ๐Ÿ ญ๐Ÿ ฎ๐Ÿ ฏ๐Ÿ ฐ๐Ÿ ฑ๐Ÿ ฒ๐Ÿ ณ๐Ÿ ด๐Ÿ ต๐Ÿ ถ๐Ÿ ท๐Ÿ ธ๐Ÿ น๐Ÿ บ๐Ÿ ป๐Ÿ ผ๐Ÿ ฝ๐Ÿ พ๐Ÿ ฟ๐Ÿก€๐Ÿก๐Ÿก‚๐Ÿกƒ๐Ÿก„๐Ÿก…๐Ÿก†๐Ÿก‡๐Ÿกˆ๐Ÿก‰๐ŸกŠ๐Ÿก‹๐ŸกŒ๐Ÿก๐ŸกŽ๐Ÿก๐Ÿก๐Ÿก‘๐Ÿก’๐Ÿก“๐Ÿก”๐Ÿก•๐Ÿก–๐Ÿก—
๐Ÿก˜๐Ÿก™๐Ÿกš๐Ÿก›๐Ÿกœ๐Ÿก๐Ÿกž๐ŸกŸ๐Ÿก ๐Ÿกก๐Ÿกข๐Ÿกฃ๐Ÿกค๐Ÿกฅ๐Ÿกฆ๐Ÿกง๐Ÿกจ๐Ÿกฉ๐Ÿกช๐Ÿกซ๐Ÿกฌ๐Ÿกญ๐Ÿกฎ๐Ÿกฏ๐Ÿกฐ๐Ÿกฑ๐Ÿกฒ๐Ÿกณ๐Ÿกด๐Ÿกต๐Ÿกถ๐Ÿกท๐Ÿกธ๐Ÿกน๐Ÿกบ๐Ÿกป๐Ÿกผ๐Ÿกฝ๐Ÿกพ๐Ÿกฟ๐Ÿข€๐Ÿข๐Ÿข‚๐Ÿขƒ๐Ÿข„๐Ÿข…๐Ÿข†๐Ÿข‡๐Ÿขˆ๐Ÿข‰
๐ŸขŠ๐Ÿข‹๐ŸขŒ๐Ÿข๐ŸขŽ๐Ÿข๐Ÿข๐Ÿข‘๐Ÿข’๐Ÿข“๐Ÿข”๐Ÿข•๐Ÿข–๐Ÿข—๐Ÿข˜๐Ÿข™๐Ÿขš๐Ÿข›๐Ÿขœ๐Ÿข๐Ÿขž๐ŸขŸ๐Ÿข ๐Ÿขก๐Ÿขข๐Ÿขฃ๐Ÿขค๐Ÿขฅ๐Ÿขฆ๐Ÿขง๐Ÿขจ๐Ÿขฉ๐Ÿขช๐Ÿขซ๐Ÿขฌ๐Ÿขญ๐Ÿขฎ๐Ÿขฏ๐Ÿขฐ๐Ÿขฑ๐Ÿขฒ๐Ÿขณ๐Ÿขด๐Ÿขต๐Ÿขถ๐Ÿขท๐Ÿขธ๐Ÿขน๐Ÿขบ๐Ÿขป
๐Ÿขผ๐Ÿขฝ๐Ÿขพ๐Ÿขฟ๐Ÿฃ€๐Ÿฃ๐Ÿฃ‚๐Ÿฃƒ๐Ÿฃ„๐Ÿฃ…๐Ÿฃ†๐Ÿฃ‡๐Ÿฃˆ๐Ÿฃ‰๐ŸฃŠ๐Ÿฃ‹๐ŸฃŒ๐Ÿฃ๐ŸฃŽ๐Ÿฃ๐Ÿฃ๐Ÿฃ‘๐Ÿฃ’๐Ÿฃ“๐Ÿฃ”๐Ÿฃ•๐Ÿฃ–๐Ÿฃ—๐Ÿฃ˜๐Ÿฃ™๐Ÿฃš๐Ÿฃ›๐Ÿฃœ๐Ÿฃ๐Ÿฃž๐ŸฃŸ๐Ÿฃ ๐Ÿฃก๐Ÿฃข๐Ÿฃฃ๐Ÿฃค๐Ÿฃฅ๐Ÿฃฆ๐Ÿฃง๐Ÿฃจ๐Ÿฃฉ๐Ÿฃช๐Ÿฃซ๐Ÿฃฌ๐Ÿฃญ
๐Ÿฃฎ๐Ÿฃฏ๐Ÿฃฐ๐Ÿฃฑ๐Ÿฃฒ๐Ÿฃณ๐Ÿฃด๐Ÿฃต๐Ÿฃถ๐Ÿฃท๐Ÿฃธ๐Ÿฃน๐Ÿฃบ๐Ÿฃป๐Ÿฃผ๐Ÿฃฝ๐Ÿฃพ๐Ÿฃฟ๐Ÿค€๐Ÿค๐Ÿค‚๐Ÿคƒ๐Ÿค„๐Ÿค…๐Ÿค†๐Ÿค‡๐Ÿคˆ๐Ÿค‰๐ŸคŠ๐Ÿค‹๐ŸคŒ๐Ÿค๐ŸคŽ๐Ÿค๐Ÿค๐Ÿค‘๐Ÿค’๐Ÿค“๐Ÿค”๐Ÿค•๐Ÿค–๐Ÿค—๐Ÿค˜๐Ÿค™๐Ÿคš๐Ÿค›๐Ÿคœ๐Ÿค๐Ÿคž๐ŸคŸ
๐Ÿค ๐Ÿคก๐Ÿคข๐Ÿคฃ๐Ÿคค๐Ÿคฅ๐Ÿคฆ๐Ÿคง๐Ÿคจ๐Ÿคฉ๐Ÿคช๐Ÿคซ๐Ÿคฌ๐Ÿคญ๐Ÿคฎ๐Ÿคฏ๐Ÿคฐ๐Ÿคฑ๐Ÿคฒ๐Ÿคณ๐Ÿคด๐Ÿคต๐Ÿคถ๐Ÿคท๐Ÿคธ๐Ÿคน๐Ÿคบ๐Ÿคป๐Ÿคผ๐Ÿคฝ๐Ÿคพ๐Ÿคฟ๐Ÿฅ€๐Ÿฅ๐Ÿฅ‚๐Ÿฅƒ๐Ÿฅ„๐Ÿฅ…๐Ÿฅ†๐Ÿฅ‡๐Ÿฅˆ๐Ÿฅ‰๐ŸฅŠ๐Ÿฅ‹๐ŸฅŒ๐Ÿฅ๐ŸฅŽ๐Ÿฅ๐Ÿฅ๐Ÿฅ‘
๐Ÿฅ’๐Ÿฅ“๐Ÿฅ”๐Ÿฅ•๐Ÿฅ–๐Ÿฅ—๐Ÿฅ˜๐Ÿฅ™๐Ÿฅš๐Ÿฅ›๐Ÿฅœ๐Ÿฅ๐Ÿฅž๐ŸฅŸ๐Ÿฅ ๐Ÿฅก๐Ÿฅข๐Ÿฅฃ๐Ÿฅค๐Ÿฅฅ๐Ÿฅฆ๐Ÿฅง๐Ÿฅจ๐Ÿฅฉ๐Ÿฅช๐Ÿฅซ๐Ÿฅฌ๐Ÿฅญ๐Ÿฅฎ๐Ÿฅฏ๐Ÿฅฐ๐Ÿฅฑ๐Ÿฅฒ๐Ÿฅณ๐Ÿฅด๐Ÿฅต๐Ÿฅถ๐Ÿฅท๐Ÿฅธ๐Ÿฅน๐Ÿฅบ๐Ÿฅป๐Ÿฅผ๐Ÿฅฝ๐Ÿฅพ๐Ÿฅฟ๐Ÿฆ€๐Ÿฆ๐Ÿฆ‚๐Ÿฆƒ
๐Ÿฆ„๐Ÿฆ…๐Ÿฆ†๐Ÿฆ‡๐Ÿฆˆ๐Ÿฆ‰๐ŸฆŠ๐Ÿฆ‹๐ŸฆŒ๐Ÿฆ๐ŸฆŽ๐Ÿฆ๐Ÿฆ๐Ÿฆ‘๐Ÿฆ’๐Ÿฆ“๐Ÿฆ”๐Ÿฆ•๐Ÿฆ–๐Ÿฆ—๐Ÿฆ˜๐Ÿฆ™๐Ÿฆš๐Ÿฆ›๐Ÿฆœ๐Ÿฆ๐Ÿฆž๐ŸฆŸ๐Ÿฆ ๐Ÿฆก๐Ÿฆข๐Ÿฆฃ๐Ÿฆค๐Ÿฆฅ๐Ÿฆฆ๐Ÿฆง๐Ÿฆจ๐Ÿฆฉ๐Ÿฆช๐Ÿฆซ๐Ÿฆฌ๐Ÿฆญ๐Ÿฆฎ๐Ÿฆฏ๐Ÿฆฐ๐Ÿฆฑ๐Ÿฆฒ๐Ÿฆณ๐Ÿฆด๐Ÿฆต
๐Ÿฆถ๐Ÿฆท๐Ÿฆธ๐Ÿฆน๐Ÿฆบ๐Ÿฆป๐Ÿฆผ๐Ÿฆฝ๐Ÿฆพ๐Ÿฆฟ๐Ÿง€๐Ÿง๐Ÿง‚๐Ÿงƒ๐Ÿง„๐Ÿง…๐Ÿง†๐Ÿง‡๐Ÿงˆ๐Ÿง‰๐ŸงŠ๐Ÿง‹๐ŸงŒ๐Ÿง๐ŸงŽ๐Ÿง๐Ÿง๐Ÿง‘๐Ÿง’๐Ÿง“๐Ÿง”๐Ÿง•๐Ÿง–๐Ÿง—๐Ÿง˜๐Ÿง™๐Ÿงš๐Ÿง›๐Ÿงœ๐Ÿง๐Ÿงž๐ŸงŸ๐Ÿง ๐Ÿงก๐Ÿงข๐Ÿงฃ๐Ÿงค๐Ÿงฅ๐Ÿงฆ๐Ÿงง
๐Ÿงจ
$ go run main.go | textimg -i -e /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf -o ~/Downloads/emoji.png

Result:

emoji

Emoji using TTF files cannot be drawn.

It may be a font reading TTF, TTC or rendering problem. Please give me a few days.

hmm? The -e option is working.

textimg -e /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf ใ‚ใ„ใ†ใˆใŠ๐Ÿ˜€ -io /images/a.png
textimg -e /usr/share/fonts/truetype/ancient-scripts/Symbola_hint.ttf ใ‚ใ„ใ†ใˆใŠ๐Ÿ˜€ -io /images/b.png

a.png:

image

b.png:

image

textimg -e a.ttf ใ‚ใ„ใ†ใˆใŠ๐Ÿ˜€ -io /images/c.png

2023/02/11 07:02:23 textimg [WARN] /root/go/pkg/mod/github.com/jiro4989/textimg/v3@v3.1.8/config/face.go:42 a.ttf is not found. please set font path with -f option

image

Please forgive me for my untruthful reading of the issues.๐Ÿ™‡ I will investigate the cause of the bug.

I finally understand. Indeed, TEXTIMG_EMOJI_FONT_FILE is not working as you said.

textimg ใ‚ใ„ใ†ใˆใŠ๐Ÿ˜€ -o /images/a.png
export TEXTIMG_EMOJI_FONT_FILE='sushi.ttf'
textimg ใ‚ใ„ใ†ใˆใŠ๐Ÿ˜€ -o /images/b.png

2023/02/11 06:15:30 textimg [WARN] /root/go/pkg/mod/github.com/jiro4989/textimg/v3@v3.1.8/config/face.go:42 sushi.ttf is not found. please set font path with -f option

a.png:

image

b.png:

image

It has the wrong warning message and the wrong font priority. This is a textimg bug.

If you want to draw Japanese, set TEXTIMG_FONT_FILE to a font that supports Japanese. TEXTIMG_FONT_FILE is used for drawing non-emoticons.

See: https://github.com/jiro4989/textimg#fonts

I donโ€™t think itโ€™s related to the OS flavor.

I donโ€™t know ArchLinuxโ€™s font folder. I donโ€™t even know what fonts will be installed.

I donโ€™t have an Arch Linux environment, so I canโ€™t test it. Solve the problem yourself.

Probably, I think that the JoyPixels font does not support Japanese.

/usr/share/fonts/joypixels/JoyPixels.ttf