How to convert CMYK to RGB in C

1 Answer

0 votes
#include <stdio.h>
#include <math.h>

// CMYK = Cyan, Magenta, Yellow, Key(black)
// RGB = Red, Green, Blue

struct CMYK {
    double C;
    double M;
    double Y;
    double K;
};

struct RGB {
    unsigned char R;
    unsigned char G;
    unsigned char B;
};

struct RGB CMYKToRGB(struct CMYK cmyk) {
    struct RGB rgb;

    rgb.R = round(255 * (1 - cmyk.C / 100) * (1 - cmyk.K / 100));
    rgb.G = round(255 * (1 - cmyk.M / 100) * (1 - cmyk.K / 100));
    rgb.B = round(255 * (1 - cmyk.Y / 100) * (1 - cmyk.K / 100));

    return rgb;
}

int main(void)
{
    struct CMYK data = {5.0, 16.0, 100.0, 0.0};
    struct RGB rgb = CMYKToRGB(data);

    printf("R = %d G = %d B = %d", rgb.R, rgb.G, rgb.B);

    return 0;
}




/*
run:

R = 242 G = 214 B = 0

*/

 



answered Jan 30, 2023 by avibootz
edited Jan 31, 2023 by avibootz

Related questions

1 answer 112 views
112 views asked Jan 31, 2023 by avibootz
1 answer 161 views
161 views asked Jan 31, 2023 by avibootz
1 answer 112 views
112 views asked Jan 30, 2023 by avibootz
1 answer 140 views
140 views asked Feb 2, 2023 by avibootz
1 answer 153 views
153 views asked Feb 1, 2023 by avibootz
1 answer 151 views
151 views asked Feb 1, 2023 by avibootz
1 answer 155 views
155 views asked Jan 31, 2023 by avibootz
...