PILではフォントのフォールバックは利用できないようなので、1文字ずつemoji判定し、emoji表示可能なフォントで描画する形になると思います。
lang
1import emoji
2from PIL import Image, ImageDraw, ImageFont
3text = "Hello, world!" + b'\xe2\x98\xba'.decode('utf-8')
4
5image = Image.new('RGB', (300, 20), (255, 255, 255))
6font_normal = ImageFont.truetype('C:/Windows/Fonts/msgothic.ttc', 18)
7font_emoji = ImageFont.truetype('C:/Windows/Fonts/seguiemj.ttf', 18)
8draw = ImageDraw.Draw(image)
9for i, s in enumerate(text):
10 x = i * 20
11 if s in emoji.UNICODE_EMOJI:
12 draw.text((x, 0), s, (0, 0, 0), font=font_emoji)
13 else:
14 draw.text((x, 0), s, (0, 0, 0), font=font_normal)
15# 画像セーブする場合は下をコメントアウト
16# image.save("img_test1.png")
17image.show()
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。