freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ft-devel] [RFC] FT_LCD_FILTER_HEAVY


From: Eric Rannaud
Subject: [ft-devel] [RFC] FT_LCD_FILTER_HEAVY
Date: Fri, 18 Nov 2011 22:50:49 -0800

Hello,

I'm quite sure this is not going to garner a lot of support, but I
personally find that fonts are not rendered bold enough on Linux (no
matter what particular antialiasing or hinting setting you choose).
And no matter what font you choose. (Fonts that have a weight 600 look
better, but in practice, it's difficult to replace all fonts.)

So I went ahead and patched freetype2 on my system and changed the FIR
weights for lcd_filter_func. See patch attached.

static const FT_Byte  heavy_filter[5] =
                            { 0x40, 0x80, 0x90, 0x80, 0x40 };

On the left with FT_LCD_FILTER_HEAVY, on the right with FT_LCD_FILTER_DEFAULT:

https://lh6.googleusercontent.com/-_oEuCOK1GYU/TsdPvEYO4rI/AAAAAAAABH4/8sxrozofATU/s1300/freetype2-heavy-01.jpg

I just find the left version a lot easier to read.

The new FT_LCD_FILTER_HEAVY is very heavy handed, I'll admit. It looks
great with serif fonts such as Georgia (or so I think), but it may be
excessive with sans-serif fonts.

So I don't really expect you would want to include this as submitted.
What would be a better way to offer a "bolder" rendering option to
people like me?

Define a new GConf or fontconfig flag and Call
FT_Library_SetLcdFilterWeights() from there? Should it be a flag with
predefined weights or should we allow users to choose weight
explicitly?

Something like:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <edit name="lcd_filter_weight_0" mode="assign">
      <int>0x40</int>
    </edit>
    <edit name="lcd_filter_weight_1" mode="assign">
      <int>0x80</int>
    </edit>
    <edit name="lcd_filter_weight_2" mode="assign">
      <int>0x90</int>
    </edit>
    <edit name="lcd_filter_weight_3" mode="assign">
      <int>0x80</int>
    </edit>
    <edit name="lcd_filter_weight_4" mode="assign">
      <int>0x40</int>
    </edit>
  </match>
</fontconfig>

Thanks.

Attachment: 0001-include-freetype-ftlcdfil.h-src-base-ftlcdfilt.c-Int.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]