<分区>
我有两种颜色,我使用这种方法进行简单的 alpha 混合:
int Color::blend(int col1, int col2)
{
float a1 = ((col1 & 0x000000FF) / 255.0);
return ((int)((((col1 & 0xFF000000) >> 24) * a1) + (((col2 & 0xFF000000) >> 24) * (1.0 - a1)))) << 24 |
((int)((((col1 & 0x00FF0000) >> 16) * a1) + (((col2 & 0x00FF0000) >> 16) * (1.0 - a1)))) << 16 |
((int)((((col1 & 0x0000FF00) >> 8 ) * a1) + (((col2 & 0x0000FF00) >> 8 ) * (1.0 - a1)))) << 8 | 255;
}
(颜色为RGBA8888格式)
这行得通,但我想知道:这是最快的方法,还是有更高效的方法?