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)

2015-11-03 15:26 GMT+01:00 John Found <[email protected]>:
> 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 <[email protected]>
>
> _______________________________________________
> Freetype mailing list
> [email protected]
> https://lists.nongnu.org/mailman/listinfo/freetype

_______________________________________________
Freetype mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/freetype

Reply via email to