+ 1
Convert RGB into CMYK color. How to write progarm in C language
In digital world coors are specified in RGB format,with values of R,G,B varying on integer scale from 0 to 255. In print publising the colors are mentioned in Cyan-Magenta-Yellow-Black(CMYK)format with values of C,M,Y and K varying on a real scale from 0.0 to 1.0. Write a program that converts RGB color to CMYK as per formulae: White=Max(red/255,green/255,blue/255) Cyan=(white-red/255)/white Magenta=(white-green/255)/white Yellow=(white-blue/255)/white Black=1-white Note that if the RGB values are all 0,then the CMY values are all 0 and the K value is 1.
3 Respostas
+ 5
#include <stdio.h>
int main()
{
    float R,G,B;
    float C,M,Y,K,W,Rf,Gf,Bf,max;
    printf("Enter the values of R,G & B: ");
    scanf("%f,%f,%f",&R,&G,&B);
    if (R<0||R>255)
    {
        printf("Enter R within limit\n");
        scanf("%f",&R);
    }
    if (G<0||G>255)
    {
        printf("Enter G within limits\n");
        scanf("%f",&G);
    }
    if (B<0||B>255)
    {
        printf("Enter B within limits\n");
        scanf("%f",&B);
    }
    printf("\nR,G,B: %f,%f,%f\n",R,G,B);
    
    if (R == 0 && G == 0 && B == 0)
    {
        printf("\nThe value of Cyan: 0\n");
        printf("\nThe value of Magenta: 0\n");
        printf("\nThe value of Yellow: 0\n");
        printf("\nThe value of Black: 1\n");
    }
    else
    {
        Rf   = R   / 255;
        Gf  = G / 255;
        Bf   = B  / 255;
    
        max = Rf;
        if (max<Gf)
            max = Gf;
        if (max<Bf)
            max = Bf;
        W = max;
        printf("\nWhite: %f\n\n", W);
    
        C = (W-Rf)/W;
        M = (W-Gf)/W;
        Y = (W-Bf)/W;
        K = 1- W;
        printf("The value of Cyan: %f\n", C);
        printf("The value of Magenta: %f\n", M);
        printf("The value of Yellow: %f\n", Y);
        printf("The value of Black: %f\n", K);
    }
}



