freetype
[Top][All Lists]
Advanced

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

RE: [Freetype] rendering a string, using outlines, in mono


From: Vincent Torri
Subject: RE: [Freetype] rendering a string, using outlines, in mono
Date: Fri, 15 Oct 2004 13:58:17 +0200 (MEST)

Hello,

i've solved the problem. More precisely, i've corrected 2 errors from my
side. For the first point, i've forgotten to copy the outline, and for the
second, i've miscalculated the translation.

anyway, thank you very much for your answers !

Vincent TORRI

On Wed, 13 Oct 2004, Turner, David wrote:

> > hello,
> > 
> > i want to render a string, on 1-bit bitmap, using the outlines of the
> > glyph (FT_Outline_Get_Bitmap). I have 2 questions:
> > 
> > 1) when i render the string in a big bitmap (say, the BBox, 
> > which i have computed before rendering), only the last character is 
> > rendered. It seems that at each call of FT_Outline_Get_Bitmap, this one 
> > clear 
> > the bitmap that i give to it. Is it the case ? Does it only create 
> > "standalone" bitmap
> > ? (from the doc: "Renders an outline within a bitmap. The  outline's image
> > is simply OR-ed to the target bitmap")
> > 
> It's difficult to answer without seeing your code, but all I can say is the
> following:
> 
>   - the bitmap _should_ be or-ed to the target surface
>   - you can check it rather easily, just fill your target bitmap
>     with a random value (e.g. 0x55), then draw in it. The result
>     will tell you quite easily if something was overwritten :-)
> 
> > 2) the second question is related to the translation of a outline. I
> > wanted to translate the characters of the strind, with 
> > FT_Outline_Translate, 
> > but, it seems that if i give the vector in pixel unit, it's not sufficient. 
> > I have to multiply the value of the offset that i give (that is, the pen 
> > position, 
> > expressed) by something like 4. I don't understand why this factor arises 
> > (why 4, 
> > and not 1<<6, as the coords of an outline is expressed in 26.6 format)
> > 
> That's strange, because:
> 
> - FT_Outline_Translate only performs addition on the vector coordinates
>   stored in the outline. It doesn't know anything about scaling
> 
> - by default, hinted/scaled outlines are stored with 1/64 pixels accuracy,
>   which means that you need to multiply pixel distances by 64 before
>   passing them to FT_Outline_Translate.
> 
> - unscaled outlines are expressed in "EM" units, so you should express
>   your translation in the EM space to call FT_Outline_Translate
> 
> I don't see where your 4 factor comes from. Did you scale the outlines
> yourself ?
> 
> Hope this helps,
> 
> - David Turner
> - The FreeType Project  (www.freetype.org)
> 
> _______________________________________________
> Freetype mailing list
> address@hidden
> http://www.freetype.org/mailman/listinfo/freetype
> 
> 






reply via email to

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