大佬教程收集整理的这篇文章主要介绍了Font 对象缺少属性(音高),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在复制 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
音高的选项。现在这很重要,因为没有它,文本完全扭曲。
我查看了 Font
的构造函数,发现它调用了
GpStatus WINGDIPAPI GdipCreateFont( GDIPCONST GpFontFamily *FontFamily,REAL emSize,INT style,Unit unit,GpFont **Font )
现在即使这样也没有 Pitch
参数的选项。
现在我想提两件事:
CourIEr New
,因为默认情况下字体是固定宽度的,并且图像可以正常工作,但是我想尝试使用 System
字体。字体可以是等宽字体(有时称为固定间距字体),例如 CourIEr New 和 LucIDa Console,或者它们可以是可变音高的,比如 Arial 和 Times New Roman。全部使用等宽字体绘制的字符 具有相同的宽度,而在可变间距字体中,宽度 字符因字符而异。
现在我假设上面的文本块说明 Pitch
在调用 Gdi+
期间由 GdipCreateFont
自动确定。
默认情况下,System
不是固定宽度,但我知道如果您在调用 GDI 函数 FIXED_PITCH
时设置 CreateFont
,它可以是固定宽度。
有没有办法使用 GDI+
来创建一个 Font
对象,并使用 System
字体系列设置 FIXED_PITCH
?
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的Font 对象缺少属性(音高)全部内容,希望文章能够帮你解决Font 对象缺少属性(音高)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。