我正在尝试使用 C# 的 Graphics 类生成字体映射。
字符应该完全位于其矩形的中间,以便以后使用它们。其次,我想使用最大的字体大小,所有字符都适合它们的框。
这是我这样做的尝试。但是,当我运行它时,角色不在矩形的中间,而且看起来它们似乎更贴近矩形的左上角,考虑到当你穿过不同的地图时它们会非常跳跃。
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)
{
}
}
}
如何让角色完美地融入矩形中间?
编辑:显然,一种字体的所有字符都必须使用相同的字体大小。