我正在编写一些C#代码,以ARGB
形式对两个32位像素进行alpha混合,如下所示:
Red = 0xFFFF0000 with an Alpha of 255 "FF"
无论如何,我试图避免每字节字节混合如下:
public static Color Blend(this Color color, Color backColor, double amount)
{
amount = (255 - amount);
byte r = (byte)((color.R * amount / 255) + backColor.R * (255 - amount) / 255);
byte g = (byte)((color.G * amount / 255) + backColor.G * (255 - amount) / 255);
byte b = (byte)((color.B * amount / 255) + backColor.B * (255 - amount) / 255);
return Color.FromArgb(r, g, b);
}
我试图在不使用double的情况下尽可能快地完成此操作。是否有一个方程可以将整数形式的两个像素α混合而不会将其分成字节?
P.S。我不能使用任何.Net框架调用,如Color.FromARGB和stuff。
感谢的