[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ft-devel] FT_Outline_Embolden() is Blurry
From: |
Werner LEMBERG |
Subject: |
Re: [ft-devel] FT_Outline_Embolden() is Blurry |
Date: |
Wed, 04 Jan 2012 08:54:18 +0100 (CET) |
> In ftoutln.c there is a function called FT_Outline_Embolden(). This
> is used to create artificial emboldening, and is used when
> fontconfig requests emboldening for fonts that don't have a bold
> face available. Near the end of this function are these two lines,
> which actually perform the emboldening, in the x and y directions:
>
> outline->points[n].x = v_cur.x + strength + in.x;
> outline->points[n].y = v_cur.y + strength + in.y;
>
> Emboldening in the y direction can happen in fractions of a pixel,
> and this ends up being only in the "up" direction. The result of
> this is a blurry fringe on the tops of letters. While this may be
> technically correct, I'm wondering if *anyone* actually thinks this
> looks nice.
The code has been written in a quite generic way. IMHO, you need both
horizontal and vertical emboldening for larger font sizes. I fully
agree that it is suboptimal for small font sizes which are going to be
used in combination with other fonts.
> In my patches, I disable the y direction completely, and the
> aesthetic improvements are dramatic, in my opinion. Is this
> something that can be done in Freetype instead? Or perhaps can the
> function be split into two?
It can't be done currently. Please suggest a new API. And provide a
patch (with a ChangeLog entry) :-)
Werner