我遇到了一个困难,因为我试图将具有特定字体样式的字符渲染到位图图像(黑白)。我的问题是字体基本上是黑色和白色,我正在用黑色(白色背景)写字符,但是当我将它转换为位图图像时,我的角色的装订区周围会出现一个彩色的薄轮廓。
当我用黑色书写时,有人能告诉我那种灰色的颜色来自哪里,我怎样才能得到黑白像素?
答案 0 :(得分:1)
非完全黑色或完全白色的像素是抗锯齿的结果。默认情况下使用消除锯齿,因为每个不了解它的人都可能需要它。
我建议两种选择。一,用每像素一位格式创建你的位图,这不会给出抗锯齿的机会。其次,您可以在逐个像素地绘制文本之后浏览生成的图像,并根据阈值将每个像素调整为黑色或白色。即如果图片比一半更暗,那么它是黑色的,否则它是白色的。例如if(red + green + blue> 383)set_pixel_white()else set_pixel_black();但是你需要为一些相当有趣的结果做好准备。您可能需要使用阈值。
PS有一个更好的解决方案,你可以调整抗锯齿。 MSDN您可以将渲染设置为System.Drawing.Text.TextRenderingHint.SingleBitPerPixel或适合您的内容。