FreeType生成的图是8bit灰度图,文字部分为白色,背景为黑色。这就有个麻烦,一般字体都是黑色,那好如果吧字体颜色取反,就黑色的变白的,白的变黑的了。可是呢,要加上颜色怎么办?这就是Freetype的文字是白色的原因,因为是8bit灰度图,因此不是黑色或白色地方,颜色就成了一个比例因子,只需要将其与想要设置的颜色相乘除以256即可,比如灰度图中某点的颜色是156,想要设置颜色是RGB(127, 42, 186),那么实际的颜色是
RGB(127*156>>8, 42*156>>8, 186*156>>8)
回到之前说的,如果想把黑色变白,白的变黑的,那么比例因子就要再取反一次,麻烦了。而且,如果字体被设置了颜色后,灰度图的比例因子效果就失效了,不能再被设置成其他颜色了,重新获取灰度图要花多余时间,解决方法是:把8bit灰度图保存在alpha通道中,如果想设置颜色,就从alpha通道中获取灰度值即可。