gpt4 book ai didi

c# - Mono c# TextRenderingHint.SingleBitPerPixelGridFit Windows 与 Linux

转载 作者:太空宇宙 更新时间:2023-11-03 16:33:10 25 4
gpt4 key购买 nike

我们在 linux 和 windows 上使用单声道,我们的一个项目是生成带有渲染文本的位图。

因为位图必须采用(每像素位格式),所以我们必须省略任何抗锯齿处理,这样我们就不会得到任何阴影,所有字母都是黑白的。

为此,我们使用 TextRenderingHint.SingleBitPerPixelGridFit,它在 Windows 上为位图上的每个像素生成 0 或 255,在 Linux 上它以某种方式忽略此设置,我们得到一个从 0 到 255 的像素值。

在 Windows 中生成的位图:设置有效

OK BITMAP : ( http://shrani.si/f/2p/Mg/9JkctiS/408b7606-b74e-46cc-a5d9-.png ) (对不起,我不允许张贴图片:)

在 Linux 中生成的位图:设置以某种方式被忽略了?!? (它有它不应该有的阴影!)不正确的位图:(http://shrani.si/f/3a/ye/1Sn9rQjM/e75ab589-2061-421b-9275-.png)

位图生成:

        b = new Bitmap(_width, _height, PixelFormat.Format16bppRgb555);
g = Graphics.FromImage(b);

g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None;
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed;
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Low;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;

区别很明显...

知道如何解决这个问题吗?这是某种系统设置还是什么?

最佳答案

我也有同样的问题。我找不到在没有抗锯齿的情况下设置单色打印的方法。但我找到了在系统级别解决任务的方法。如果需要,您可以仅为选定的字体和大小自定义设置。使用抗锯齿设置编辑现有文件或创建新文件。/etc/fonts/conf.d/10-antialias.conf将抗锯齿设置为 false。

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Use the Antialiasing -->
<match target="font">
<edit name="antialias" mode="assign"><bool>false</bool></edit>
</match>
</fontconfig>

关于c# - Mono c# TextRenderingHint.SingleBitPerPixelGridFit Windows 与 Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10138012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com