On Thu, Mar 5, 2009 at 12:00 PM, xianghang liu <address@hidden
> On Wed, Mar 4, 2009 at 9:14 PM, Ben Abbott <address@hidden
>> On Mar 4, 2009, at 5:09 AM, Michael Goffioul wrote:
>>> On Wed, Mar 4, 2009 at 9:22 AM, xianghang liu <address@hidden
>>>> In freetype, I found two functions
>>>> FT_Outline_Get_BBox Compute the exact bounding box of an outline.
>>>> FT_Outline_Get_CBox Return an outline's ‘control box’.
>>>> After a rough glance at ftgl's bounding box computation, I think it use
>>>> FT_Outline_Get_CBox to compute the box of each glyph and add them
>>>> to get the extent of the string. Shall we just follow the same method?
>>> AFAIK, depending on the font, the width of a string is not the same as
>>> the sum of the width of all its characters. OTOH, I think you can assume
>>> that the width of a string will always be <= than the sum of the width of
>>> its characters. So adding the box of each glyph should give you a maximum
>>> width anyway.
>>> Note that I'm not a font expert, so I might be wrong.
>> I'm uncertain about this as well. Does anyone following along know?
>> I was under the impression that the spacing between characters depends
>> upon the neighboring characters (however, I might be thinking of LaTeX,
>> which I'd expect to have a more complicated scheme). If a string's extent is
>> not the sum of is character's extents, then we will require something to
>> calculate the extents of a string directly. Which is something that gdlib
>> and ftgl provide for.
>> In any event, I'm thrilled that xianghang has taken on this effort. From
>> my perspective this represents the largest obstacle to improving the
>> compatibility of the gnuplot backend.
> I found two methods to get the extent of text objects by freetype:
> use FT_Outline_Get_CBox to get the bounding box of a single glyph and
> FT_Get_Kerning to get the kerning vector between two glyphs. This is the
> method used in FTGL and contained in FTFontImpl::BBoxI.
> in gdft.c of gd library source code, there is a function gdImageStringFTEx
> and some similiar funcions. These functions implement another method to get
> bounding box from glyph metrics. These functions are what PHP function
> imagettfbbox use to get bounding box. Call to these functions can be found
> in PHP source code \php-5.2.9\ext\gd\gd.c
> Xianghang Liu