void Sum(ECHANEL chanel, byte[] bgraValues, ref byte[] bgraValues1) { for (var i = 0; i < bgraValues1.Length; i += 4) { int result = 0; switch (chanel) { case ECHANEL.RGB: result = bgraValues[i] + bgraValues1[i]; bgraValues1[i] = Convert.ToByte(Normalize(result)); result = bgraValues[i + 1] + bgraValues1[i + 1]; bgraValues1[i + 1] = Convert.ToByte(Normalize(result)); result = bgraValues[i + 2] + bgraValues1[i + 2]; bgraValues1[i + 2] = Convert.ToByte(Normalize(result)); break; case ECHANEL.RG: result = bgraValues[i + 1] + bgraValues1[i + 1]; bgraValues1[i + 1] = Convert.ToByte(Normalize(result)); result = bgraValues[i + 2] + bgraValues1[i + 2]; bgraValues1[i + 2] = Convert.ToByte(Normalize(result)); break; case ECHANEL.RB: result = bgraValues[i] + bgraValues1[i]; bgraValues1[i] = Convert.ToByte(Normalize(result)); result = bgraValues[i + 2] + bgraValues1[i + 2]; bgraValues1[i + 2] = Convert.ToByte(Normalize(result)); break; case ECHANEL.GB: result = bgraValues[i] + bgraValues1[i]; bgraValues1[i] = Convert.ToByte(Normalize(result)); result = bgraValues[i + 1] + bgraValues1[i + 1]; bgraValues1[i + 1] = Convert.ToByte(Normalize(result)); break; case ECHANEL.R: result = bgraValues[i + 2] + bgraValues1[i + 2]; bgraValues1[i + 2] = Convert.ToByte(Normalize(result)); break; case ECHANEL.G: result = bgraValues[i + 1] - bgraValues1[i + 1]; bgraValues1[i + 1] = Convert.ToByte(Normalize(result)); break; case ECHANEL.B: result = bgraValues[i] + bgraValues1[i]; bgraValues1[i] = Convert.ToByte(Normalize(result)); break; } } }
void No(ECHANEL chanel, byte[] bgraValues, ref byte[] bgraValues1) { for (var i = 0; i < bgraValues1.Length; i += 4) { switch (chanel) { case ECHANEL.RGB: bgraValues1[i] = bgraValues[i]; bgraValues1[i + 1] = bgraValues[i + 1]; bgraValues1[i + 2] = bgraValues[i + 2]; break; case ECHANEL.RG: bgraValues1[i + 1] = bgraValues[i + 1]; bgraValues1[i + 2] = bgraValues[i + 2]; break; case ECHANEL.RB: bgraValues1[i] = bgraValues[i]; bgraValues1[i + 2] = bgraValues[i + 2]; break; case ECHANEL.GB: bgraValues1[i] = bgraValues[i]; bgraValues1[i + 1] = bgraValues[i + 1]; break; case ECHANEL.R: bgraValues1[i + 2] = bgraValues[i + 2]; break; case ECHANEL.G: bgraValues1[i + 1] = bgraValues[i + 1]; break; case ECHANEL.B: bgraValues1[i] = bgraValues[i]; break; } } }