Dst = (Src * Alpha + (256 – Src.Alpha * Alpha / 255) * Dst ) / 255;
其中:
Dst表示最终颜色,也可以认为是背景颜色
Src表示初始颜色,也可以理解为前景颜色
Src.Alpha表示源色中的Alpha值
Alpha表示对源色进行Alpha处理后再与背景色混合
颜色遵循32位AARRGGBB格式
Tmp.Red = Src.Red * SourceConstantAlpha / 255;
Tmp.Green = Src.Green * SourceConstantAlpha / 255;
Tmp.Blue = Src.Blue * SourceConstantAlpha / 255;
Tmp.Alpha = Src.Alpha * SourceConstantAlpha / 255;
Beta = 256 – Tmp.alpha;
Dst.Red = Tmp.Red + Round((Beta * Dst.Red )/255);
Dst.Green = Tmp.Green + Round((Beta * Dst.Green)/255);
Dst.Blue = Tmp.Blue + Round((Beta * Dst.Blue )/255);
Dst.Alpha = Tmp.Alpha + Round((Beta * Dst.Alpha)/255);