freetype
[Top][All Lists]
Advanced

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

Re: [ft] How to draw FT_Bitmap to the ARGB image?


From: John Found
Subject: Re: [ft] How to draw FT_Bitmap to the ARGB image?
Date: Wed, 4 Nov 2015 00:08:00 +0200

Hi. Thanks for the answer.

On Tue, 3 Nov 2015 20:44:27 +0100
Wojciech Mamrak <address@hidden> wrote:

> Assuming C is non-pre-multiplied by alpha:
> Fr = Fr/255 * Ca
> Dr = Cr * Fr + Dr * (1 - Fr)
> Da = Ca + Da * (1 - Ca)
> 
> Assuming C is pre-multiplied by alpha:
> Fr = Fr/255
> Dr = Cr * Fr + Dr * (1 - Fr * Ca)
> Da = Ca + Da * (1 - Ca)
> 

Here is something wrong with these equations. (or with my understanding...)

If we have fully transparent background:

Da = 0, Drgb = 0

and black color:

Ca = 1, Crgb = 0

...then regardless of the values of Frgb, the result is always:

Drgb=0 and Da = 1;

i.e. we get black rectangles instead of glyphs. 

See the attachment for example. On this picture, the result bitmap is later 
blended on gray background in order to make the result visible.


> 2015-11-03 15:26 GMT+01:00 John Found <address@hidden>:
> > I need to draw text on a transparent image with format ARGB, pre-multiplied 
> > alpha.
> >
> > The rendered FT_Bitmap has format FT_PIXEL_MODE_LCD and I want the glyph to 
> > be displayed in some color with transparency.
> >
> > So, for every pixel I have 3 numbers:
> >
> > Da, Dr, Dg, Db - destination pixel ARGB (the background image).
> >     Fr, Fg, Fb - FreeType rendered pixel (FT_Bitmap rendered with 
> > FT_RENDER_MODE_LCD)
> > Ca, Cr, Cg, Cb - The color I want the glyph to be drawn.
> >
> > So, the question: How to properly combine these 3 numbers in order to get 
> > the result bitmap pixel.
> >
> > A theory and math are welcome. If I understand the theory, I can write the 
> > code.
> >
> > Best Regards.
> > --
> > http://fresh.flatassembler.net
> > http://asm32.info
> > John Found <address@hidden>
> >
> > _______________________________________________
> > Freetype mailing list
> > address@hidden
> > https://lists.nongnu.org/mailman/listinfo/freetype


-- 
http://fresh.flatassembler.net
http://asm32.info
John Found <address@hidden>

Attachment: black_glyphs.png
Description: Binary data


reply via email to

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