Я пишу бот Discord, который встречает новых пользователей изображениями (с их именами), используя Подушка . И люди часто склонны использовать иностранные символы Unicode в своих именах (или имена на разных языках, таких как китайский, японский и c.), Которые мой шрифт не поддерживает. Они выглядят как пустые коробки. Примеры:
- 你好
- | | ¨z ล ƒҡ เ εŁ | |
- G̷̈̐e̸̾̾n̶͛̊e̴̊͗r̴̾́a̴͆̑t̸̿̌o̶̽̃r̶̈́̔Z̶̈́̑a̸̋̀l̸͋͝g̵̀̓
Я пробовал несколько шрифтов и узнал, что я не могу просто использовать один шрифт, который поддерживает все это. Затем я наткнулся на Google Noto и, очевидно, их семейство шрифтов поддерживает все виды языков.
Итак, вот мой план:
- Проверьте каждый символ в строке и посмотрите, поддерживает ли его основной шрифт
- Если да, просто нарисуйте символ
- Если нет, найдите другой шрифт, который его поддерживает, и нарисуйте его.
С этим связано несколько проблем:
- I не следует перебирать все шрифты для каждого символа и проверять, поддерживает ли один из них его. Это будет очень плохо с точки зрения производительности.
- Я не знаю, как бы нарисовал каждого персонажа и чтобы он выглядел организованно. Я предполагаю, что между каждым шрифтом будет заметная разница в размере и стиле.
До сих пор я нашел библиотеку fontTools , которая позволит мне проверить, поддерживает ли шрифт символ или нет, но я не знаю, как мне поступить с этого момента. Мне любопытно:
- Как почти каждый веб-сайт поддерживает и обрабатывает эти тексты?
- Как бы я достиг своей цели, используя Pillow в Python?
Была бы признательна за помощь. Спасибо.