2014-01-20 95 views
1

我写一些C#代码阿尔法混合两个32位像素ARGB形式是这样的:alpha混合两个32位的形式ARGB颜色

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); 
    } 

我试图尽可能快地做到这一点,而不使用双。有没有一个公式可以将alpha整数形式的两个像素混合而不会将其分解为字节?

P.S.我不能使用任何.Net框架调用,如Color.FromARGB和东西。

感谢的

+1

您在示例代码块中直接使用Colors.FromArgb。 –

回答

0

你可以使用the other .FromArgb method接受一个整数阿尔法参数。

+0

我不能用这个与我正在做的悲伤。我计划编写一个能够满足我的要求的方程式。 – user3213751

+0

然后阅读[这个SO回答关于ARGB混合](http://stackoverflow.com/questions/1944095/how-to-mix-two-argb-pixels) –

+1

已经阅读之前问我的问题。我需要一个不需要“每字节字节”混合的公式,而是整个ARGB值的混合,这样我就可以节省CPU计算和时间。 – user3213751