Adding two Color Arrays together

Good afternoon all, I am looking to create a method to add two Color Arrays together.

I wish to have something like this:

    for(int y=aRootObject.layers[aLayer].height-1; y>=0; y--) 
	{
		for(int x=0; x<aRootObject.layers[aLayer].width; x++) 
		{
			Color[] aBaseTexturePixels = texture.GetPixels(x*aRootObject.tilewidth, y*aRootObject.tileheight, aRootObject.tilewidth, aRootObject.tileheight);
			Color[] aCopyTexturePixels = (aRootObject.layers[aLayer].data[g])-1 > 0 ? tiles[ (aRootObject.layers[aLayer].data[g])-1] : aBaseTexturePixels;
			Color[] aColorList = new Color[aBaseTexturePixels.Length];
			
			int aPixelLength = aBaseTexturePixels.Length;
			
			for(int p = 0; p < aPixelLength; p++)
			{
				aColorList[p] = Color.Lerp(aBaseTexturePixels[p], aCopyTexturePixels[p], aCopyTexturePixels[p].a);
			}
			//p = p + texture.GetPixels(x*aRootObject.tilewidth, y*aRootObject.tileheight, aRootObject.tilewidth, aRootObject.tileheight);
			texture.SetPixels(x*aRootObject.tilewidth, y*aRootObject.tileheight, aRootObject.tilewidth, aRootObject.tileheight, aColorList);
			g++;
		}
	}

Unfortunately this method does not yield the result that I wish, go figure.

PS: If it wasn’t clear in the code, my goal is to add what is already on the texture with my new information.

These are the two function I ahve found and used, maybe they can help you.

public Color CombineColors(params Color[] aColors)
	{
		Color result = new Color(0,0,0,0);
		foreach(Color c in aColors)
		{
			result += c;
		}
		result /= aColors.Length;
		return result;
	}

	public Color TransformHSV(
		Color color,  // color to transform
		float H,          // hue shift (in degrees)
		float S,          // saturation multiplier (scalar)
		float V           // value multiplier (scalar)
		)
	{
		float VSU = V*S*Mathf.Cos(H*Mathf.PI/180);
		float VSW = V*S*Mathf.Sin(H*Mathf.PI/180);
		
		Color ret = new Color();
		ret.r = (.299f*V+.701f*VSU+.168f*VSW)*color.r
			+ (.587f*V-.587f*VSU+.330f*VSW)*color.g
				+ (.114f*V-.114f*VSU-.497f*VSW)*color.b;
		ret.g = (.299f*V-.299f*VSU-.328f*VSW)*color.r
			+ (.587f*V+.413f*VSU+.035f*VSW)*color.g
				+ (.114f*V-.114f*VSU+.292f*VSW)*color.b;
		ret.b = (.299f*V-.3f*VSU+1.25f*VSW)*color.r
			+ (.587f*V-.588f*VSU-1.05f*VSW)*color.g
				+ (.114f*V+.886f*VSU-.203f*VSW)*color.b;
		ret.a = 1f;
		if(ret.r < 0) {ret.r = 0;}
		if(ret.g < 0) {ret.g = 0;}
		if(ret.b < 0) {ret.b = 0;}
		return ret;

	}