package main
import (
"fmt"
"image/color"
)
// AverageRGB calculates the average of two RGB colors.
func AverageRGB(c1, c2 color.RGBA) color.RGBA {
return color.RGBA{
R: uint8((int(c1.R) + int(c2.R)) / 2),
G: uint8((int(c1.G) + int(c2.G)) / 2),
B: uint8((int(c1.B) + int(c2.B)) / 2),
A: uint8((int(c1.A) + int(c2.A)) / 2),
}
}
// RGBToHex converts RGB to a hex string.
func RGBToHex(c color.RGBA) string {
return fmt.Sprintf("#%02X%02X%02X", c.R, c.G, c.B)
}
func main() {
color1 := color.RGBA{R: 255, G: 100, B: 50, A: 255}
color2 := color.RGBA{R: 50, G: 170, B: 200, A: 255}
averageColor := AverageRGB(color1, color2)
fmt.Printf("Average Color: R=%d, G=%d, B=%d, A=%d\n",
averageColor.R, averageColor.G, averageColor.B, averageColor.A)
hex := RGBToHex(averageColor)
fmt.Printf("Average Color (hex): %s\n", hex)
}
/*
run:
Average Color: R=152, G=135, B=125, A=255
Average Color (hex): #98877D
*/