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
