以像素为单位绘制所有字符均等宽的字符串的方法是什么?
What is the way to draw a string with all characters equally wide in terms of pixels?
Bitmap bmpChar = new Bitmap(16,16);
FontFamily fontFamily = new FontFamily("Arial");
Font font = new Font(
fontFamily,
16,
FontStyle.Regular,
GraphicsUnit.Pixel);
Graphics g = Graphics.FromImage(testBmp);
g.DrawString("test", font, Brushes.Red, 0, 0);
上面的代码在 16x16 区域打印两个字符(它有 "te" 个 "test",而我预计只有 "t")。在 winforms 中,当将所有字母和数字作为字符串绘制到位图上时,有什么平台无关的(32 位、64 位、NT、XP、7、10)方法可以使所有字母和数字具有恒定宽度的字符?
如果可能的话,我会使用 monospaced font。否则,您要么在光栅化后拉伸字母,要么必须计算每个字母之间的间距量,这会复杂得多。
Bitmap bmpChar = new Bitmap(16,16);
FontFamily fontFamily = new FontFamily("Arial");
Font font = new Font(
fontFamily,
16,
FontStyle.Regular,
GraphicsUnit.Pixel);
Graphics g = Graphics.FromImage(testBmp);
g.DrawString("test", font, Brushes.Red, 0, 0);
上面的代码在 16x16 区域打印两个字符(它有 "te" 个 "test",而我预计只有 "t")。在 winforms 中,当将所有字母和数字作为字符串绘制到位图上时,有什么平台无关的(32 位、64 位、NT、XP、7、10)方法可以使所有字母和数字具有恒定宽度的字符?
如果可能的话,我会使用 monospaced font。否则,您要么在光栅化后拉伸字母,要么必须计算每个字母之间的间距量,这会复杂得多。