Das kann zunächst einmal mit den meisten Fonts nicht klappen, da die meisten "Buchstabenzellen" höher als breit sind.
Jupp, man bräuchte einen Font mit Breite=Höhe.
Oder man löst das Problem dadurch, dass man bei der Umsetzung entsprechend skaliert.
Angenommen das Bild wäre 400 * 400 Pixel.
Der Font hätte 12 * 16 Pixel.
Dann müsste man ausrechnen, wie viele Textzeilen und Textspalten notwendig sind
um möglicht das Aspekt-Ratio (=Breite/Höhe) beizubehalten.
Man wird das ursprüngliche Aspekt-Ratio in aller Regel nicht genau treffen sondern höchstens annähern.
Dazu kommt noch ein Skalierungsfaktor mit dem man Textoutput insgesamt grösser oder kleiner machen kann.
Ein kleiner mathematischer Kraftakt.