Die meisten Algorithmen im Internet sind zu textuell geschrieben, was sehr ermüdend aussieht.
Hinterlassen Sie eine Datei. Der Kernalgorithmus
bg ist die abgedeckte Schicht und add ist die obere Schicht.
private Color AlphaBlend(Color bg, Color add)
{
float bg_a = (float)bg.A / 255.0f;
float bg_r = (float)bg.R / 255.0f;
float bg_g = (float)bg.G / 255.0f;
float bg_b = (float)bg.B / 255.0f;
float add_a = (float)add.A / 255.0f;
float add_r = (float)add.R / 255.0f;
float add_g = (float)add.G / 255.0f;
float add_b = (float)add.B / 255.0f;
float rA = 1 - (1 - add_a) * (1 - bg_a);
float rR = add_r * add_a + bg_r * bg_a * (1 - add_a);
float rG = add_g * add_a + bg_g * bg_a * (1 - add_a);
float rB = add_b * add_a + bg_b * bg_a * (1 - add_a);
rA *= 255;
rR *= 255;
rG *= 255;
rB *= 255;
return Color.FromArgb((int)rA, (int)rR, (int)rG, (int)rB);
}
Es gibt kein Ende, etwas über das Programmieren zu lernen.
Jeder ist willkommen, sich mitzuteilen. Wenn etwas unklar oder falsch ist, können Sie auch privat mit mir chatten.
Mein QQ 334524067 Gottähnlicher Didi