2015-11-04 8:34 GMT+01:00 Sven Van Caekenberghe <[email protected]>: > > > On 04 Nov 2015, at 01:15, Peter Uhnák <[email protected]> wrote: > > > > Yes, this is an important insight, > > I've made a visual comparison of #4 (red) compared to #1 (blue) > > <dimensions.png> > > http://ws.stfx.eu/LWMJN1SY7VXT > > Peter, this script is soo cool, really great work ! > > I like the 'whatever' :)
Thierry > > plus compared to the other ones it can even tell the height... now to > teach Roassal how to use it... > > > > Peter > > > > On Tue, Oct 27, 2015 at 4:11 PM, Thierry Goubier < > [email protected]> wrote: > > Hi Alex, > > > > thanks, this is very usefull. Can you tell which one of these measures > is the closest to the effective length of a string morph? Number 4? > > > > Thierry > > > > > > 2015-10-27 12:02 GMT+01:00 Aliaksei Syrel <[email protected]>: > > Hi > > > > I'm sending it here so that it doesn't get lost. > > > > There are multiple ways to measure string width. In the following > examples performance will be tested measuring 10`000 times the width of the > following string: > > > > string := 'abcdefghijklmnopqrstuvwxyz 0123456789!@#$%^&*()_+'. > > > > 1) The most straightforward way is to send #widthOfString: to the font. > Time to run gives around 250ms. > > http://ws.stfx.eu/2Q5YA9DFTRDR > > Resulting value is rounded to integer and seems to be not absolutely > correct and precise. > > > > 2) More complex way is to go deeper on the level of glyphs and manually > summarise the width of each character in the string sending #getGlyphWidth: > character to the font. Time to run gives around 750ms. > > http://ws.stfx.eu/ETBEW1EHAAZ8 > > Resulting value is float and looks like correct and precise value. > > > > 3) Even more complex is to use CairoFontMetricsProvider instead of > font's methods. The same as in 2nd case we measure each character. Time to > run around 350ms. > > http://ws.stfx.eu/7I89DMD0ZLM3 > > Resulting value is exactly the same as in the 2nd case. With almost > equal performance to 1st it is nice alternative. > > > > 4) One more way is to let native cairo to calculate everything for us. > Calls happen through nativeboost. Time to run around 120ms. > > http://ws.stfx.eu/HYD76OMIOM7L > > As result it returns CairoTextExtents which allows to calculate width > and height with one call. > > > > Cheers, > > Alex > > > > > > >
