Alpha Blend两种ARGB颜色,32bit格式

时间:2014-01-20 04:22:04

标签: c# colors

我正在编写一些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。

感谢的

1 个答案:

答案 0 :(得分:0)

您可以使用接受整数alpha参数的the other .FromArgb method