2012-04-13 58 views
1

我们在linux上使用mono和windows上,我们有一个项目是生成带有渲染文本的位图。Mono c#TextRenderingHint.SingleBitPerPixelGridFit Windows与Linux

由于位图必须是在(每像素格式位),我们必须省略,我们没有得到任何阴影任何antialising,所有的信件完全以B & W.

为此,我们使用TextRenderingHint.SingleBitPerPixelGridFit这在Windows上产生了在Linux上的位图,值为0或255它在某种程度上忽略此设置的每个像素,我们得到的像素值从0到窗口产生255

位图:与设置工作

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

在linux中生成的位图:设置忽略了?!? (它有它不应该有SHADES!) NOT OK位图:(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; 

清楚地显示的差异......

任何想法如何解决这个问题?这是一些系统设置或什么的?

+0

我修复了您的图像。欢迎来到SO! – abatishchev 2012-04-13 09:04:42

+0

他们坏了,不再显示像素网格拟合。回滚。 – 2012-04-13 13:25:48

+0

您是否设法得到答案?我也有同样的问题... – frankhommers 2015-01-05 22:48:37

回答

0

我有同样的问题。 我没有找到没有抗锯齿的设置单色打印的方式。 但我在系统级找到解决任务的方法。 如果需要,您可以只为选定的字体和大小自定义设置。 使用Antialising设置编辑现有文件或创建新文件。 /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>