How to find the average between RGB colors c1 and c2 in C#

2 Answers

0 votes
using System;
using System.Drawing;

class Program
{
    static Color AverageColor(Color c1, Color c2) {
        int avgR = (c1.R + c2.R) / 2;
        int avgG = (c1.G + c2.G) / 2;
        int avgB = (c1.B + c2.B) / 2;
    
        return Color.FromArgb(avgR, avgG, avgB);
    }
    static void Main()
    {
        Color c1 = Color.FromArgb(255, 100, 50);
        Color c2 = Color.FromArgb(50, 170, 200);
        
        Color average = AverageColor(c1, c2);
        
        Console.WriteLine($"Average Color: {average}");
    }
}



/*
run:

Average Color: Color [A=255, R=152, G=135, B=125]

*/

 



answered Jun 18, 2025 by avibootz
0 votes
using System;
using System.Drawing;

class Program
{
    static void Main()
    {
        Color c1 = Color.FromArgb(255, 100, 50);
        Color c2 = Color.FromArgb(50, 170, 200);
        
        string average = string.Format($"#{((c1.R + c2.R) / 2):X2}{((c1.G + c2.G) / 2):X2}{((c1.B + c2.B) / 2):X2}");

        Console.WriteLine($"Average Color: {average}");
    }
}


/*
run:

Average Color: #98877D

*/

 



answered Jun 18, 2025 by avibootz
...