我正在使用FreeType渲染一些文本。
我想要绘制文本的表面是一张带有ARGB格式、预乘alpha的位图图像。
所需文本的颜色也是ARGB。
渲染的FT_Bitmap的格式为FT_PIXEL_MODE_LCD - 就好像文本是在黑色背景上用白色渲染的,具有亚像素抗锯齿效果。
因此,对于每个像素,我有三个数字:
所以问题是:如何正确地组合这3个数字以获得结果位图像素。
理论答案比代码示例更好。
我想要绘制文本的表面是一张带有ARGB格式、预乘alpha的位图图像。
所需文本的颜色也是ARGB。
渲染的FT_Bitmap的格式为FT_PIXEL_MODE_LCD - 就好像文本是在黑色背景上用白色渲染的,具有亚像素抗锯齿效果。
因此,对于每个像素,我有三个数字:
Da,Dr,Dg,Db
- 目标像素ARGB(背景图片)。
Fr,Fg,Fb
- FreeType渲染像素(用FT_RENDER_MODE_LCD渲染的FT_Bitmap)。
Ca,Cr,Cg,Cb
- 我想要使用的文本的颜色。所以问题是:如何正确地组合这3个数字以获得结果位图像素。
理论答案比代码示例更好。
max(Asrc,Adest)
(只使 dest 更少透明,永远不会更多)。 - Jongware