C# 如何将true type字体转换为位图图像?

C# 如何将true type字体转换为位图图像?,c#,image,fonts,bitmap,C#,Image,Fonts,Bitmap,我有一个困难,因为我试图渲染一个特定字体样式的字符到位图图像(黑白)。我的问题是字体基本上是黑白的,我用黑色(在白色背景下)书写角色,但是当我将其转换为位图图像时,我会在角色的装订处得到一个彩色的细轮廓 有谁能告诉我,当我用黑色书写时,灰色是从哪里来的?我如何才能只得到黑白像素?非完全黑色或完全白色的像素是消除混叠的结果。默认情况下使用抗锯齿,因为不知道它的每个人都可能想要它 我建议两种选择。第一,使用每像素一位的格式创建位图,这不会给消除混叠带来机会。其次,在逐像素绘制文本后,您可以浏览结果图

我有一个困难,因为我试图渲染一个特定字体样式的字符到位图图像(黑白)。我的问题是字体基本上是黑白的,我用黑色(在白色背景下)书写角色,但是当我将其转换为位图图像时,我会在角色的装订处得到一个彩色的细轮廓


有谁能告诉我,当我用黑色书写时,灰色是从哪里来的?我如何才能只得到黑白像素?

非完全黑色或完全白色的像素是消除混叠的结果。默认情况下使用抗锯齿,因为不知道它的每个人都可能想要它

我建议两种选择。第一,使用每像素一位的格式创建位图,这不会给消除混叠带来机会。其次,在逐像素绘制文本后,您可以浏览结果图像,并根据阈值将每个像素调整为黑色或白色。也就是说,如果图片比一半暗,那么它是黑色的,否则它是白色的。e、 g.如果(红色+绿色+蓝色>383)设置像素为白色()否则设置像素为黑色();但你需要准备一些相当有趣的结果。您可能需要使用阈值


PS有一个更好的解决方案,你可以调整抗锯齿。您可以将渲染设置为System.Drawing.Text.TextRenderingHint.SingleBitPerPixel或适合您的内容。

可能是抗锯齿:-如果没有它,它看起来会很糟糕。我实际使用过它,但不起作用。我的问题是,在位图转换中,灰色从何而来。我希望得到纯黑白图像@用户3266873请查看所用图形的
textrendinghint
属性。改变它……马丁,谢谢你的评论。你能告诉我如何做第一个选项吗?位图构造器可以为像素格式提供一个额外的参数。请参阅,像素格式可以格式化为1。这就足够了吗?最后一件事,你能给我举个例子说明我有什么问题吗?!许多人感谢我在答案中添加的链接。有一个很好的例子。对我来说,两种颜色的最佳效果是使用drawing.TextRenderingHint=System.drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;