C# の Graphics クラスを使用してフォント マップを生成しようとしています。
文字は、後で使用するために、長方形の真ん中に完全にあるはずです。次に、すべての文字がボックスに収まる最大の font-size を使用したいと考えています。
これはそうしようとする私の試みです。ただし、これを実行すると、キャラクターは長方形の中央ではなく、さまざまなマップを通過するときにかなりジャンプしていることを考えると、長方形の左上隅にくっついているように見えます.
foreach (String FontName in DataHandler.GetFonts())
{
foreach (FontStyle Style in Enum.GetValues(typeof(FontStyle)))
{
try
{
Bitmap map = new Bitmap(585, 559);
Graphics g = Graphics.FromImage(map);
for (int i = 0; i < charOrder.Length; i++)
{
string character = charOrder.Substring(i, 1);
g.DrawString(character, new Font(FontName, 30 / new Font(FontName, 20).FontFamily.GetEmHeight(Style), Style), new SolidBrush(myColor), new RectangleF(new PointF((i % charactersPerRow) * 40, ((i - (i % charactersPerRow)) / charactersPerRow) * 80), new SizeF(40, 80)));
}
map.Save(OutputPath + "\\" + Style.ToString() + "_" + FontName + ".png");
}
catch (Exception)
{
}
}
}
文字を四角形の真ん中に完全に合わせるにはどうすればよいですか?
編集: 1 つのフォントのすべての文字は、明らかに同じフォント サイズを使用する必要があります。