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

1 Answer

0 votes
#include <stdio.h>

char* rgbToHex(int r, int g, int b, char* hexColor) {
    // Format the color as a hex string: #RRGGBB
    sprintf(hexColor, "#%02X%02X%02X", r, g, b);
    
    return hexColor;
}

int main() {
    // Color 1: RGB(255, 100, 50)
    int r1 = 255, g1 = 100, b1 = 50;

    // Color 2: RGB(50, 170, 200)
    int r2 = 50, g2 = 170, b2 = 200;

    // Calculate average RGB values
    int avgR = (r1 + r2) / 2;
    int avgG = (g1 + g2) / 2;
    int avgB = (b1 + b2) / 2;

    // Convert to hex
    char hexColor[8]; // # + 6 hex digits + null terminator
    rgbToHex(avgR, avgG, avgB, hexColor);

    printf("Average Color (hex): %s\n", hexColor);
    
    return 0;
}


  
/*
run:
  
Average Color (hex): #98877D
   
*/

 



answered Jun 18, 2025 by avibootz

Related questions

...