Я не знаю точного названия алгоритма - я бы предположил, что это вариант задачи 2D упаковки бинов , но без интереса из наилучшей возможной упаковки
Вот некоторые ресурсы и вопросы:
- Вы пытаетесь рисовать изображение максимально плотно, используя шрифты разных размеров? (в отличие от всего одного размера шрифта)
- Могут ли символы обрезаться по краям?
Если второй вопрос - да, мне кажется, что самый простой способ создать изображение - заполнить весь прямоугольник символами, инвертировать форму изображения и использовать его в качестве маски.
Вот ответ не только для персонажей, но и для целых предложений. Алгоритм обтекания текста внутри фигуры
Edit:
Некоторые популярные современные веб-сайты с графическим заполнением, которые стоит изучить