问题描述
我正在复制 this Image->ASCII 转换器,但在 c#
中,其中一个重要的评论是:
很重要的一点是,这里使用了mm_txt->Font的设置, 所以一定要设置:
Font->Pitch = fpFixed
Font->Charset = OEM_CHARSET
Font->Name = "System"
所以在创建 System.Drawing.Font
对象时,我这样做:
const int OEM_CHARSET = 255;
Font font = new Font("System",7f,FontStyle.Regular,GraphicsUnit.Pixel,OEM_CHARSET);
但是,问题是我没有看到指定 Font
音高的选项。现在这很重要,因为没有它,文本完全扭曲。
GpStatus WINGDIPAPI GdipCreateFont( GDIPCONST GpFontFamily *fontFamily,REAL emSize,INT style,Unit unit,GpFont **font )
现在即使这样也没有 Pitch
参数的选项。
现在我想提两件事:
字体可以是等宽字体(有时称为固定间距字体),例如 Courier New 和 Lucida Console,或者它们可以是可变音高的,比如 Arial 和 Times New Roman。全部使用等宽字体绘制的字符 具有相同的宽度,而在可变间距字体中,宽度 字符因字符而异。
现在我假设上面的文本块说明 Pitch
在调用 Gdi+
期间由 GdipCreateFont
自动确定。
默认情况下,System
不是固定宽度,但我知道如果您在调用 GDI 函数 FIXED_PITCH
时设置 CreateFont
,它可以是固定宽度。
有没有办法使用 GDI+
来创建一个 Font
对象,并使用 System
字体系列设置 FIXED_PITCH
?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)