简体   繁体   中英

Why is converting RGB to CMYK not showing the correct result

I am using this site as a reference: http://www.rapidtables.com/convert/color/rgb-to-cmyk.htm

My code:

public void Convert2CMYK()
{
    float c, m, y, k;
    if (inRed == 0 && inGreen == 0 && inBlue == 0)
    {
        tbCyan.Text = "0";
        tbMagenta.Text = "0";
        tbYellow.Text = "0";
        tbBlack.Text = "1";
    }

    c = 1 - (inRed / 255f);
    m = 1 - (inGreen / 255f);
    y = 1 - (inBlue / 255f);

    var minCMY = Math.Min(c, Math.Min(m, y));

    c = (c - minCMY) / (1 - minCMY) * 100;
    m = (m - minCMY) / (1 - minCMY) * 100;
    y = (y - minCMY) / (1 - minCMY) * 100;
    k = minCMY * 100;

    tbCyan.Text = c.ToString();
    tbMagenta.Text = m.ToString();
    tbYellow.Text = y.ToString();
    tbBlack.Text = k.ToString();
}

On the site, R=25, G=25, B=25 results in C=0, M=0, Y=0, K=0.902

In the app (my code), R=25, G=25, B=25 results in C=0, M=0, Y=0, K=90.19608

What do I have to modify to ensure my results are accurate.

Thanks to everyone for their help. Here are the final equations which did the trick:

c = Math.Round((c - minCMY) / (1 - minCMY), 3);
m = Math.Round((m - minCMY) / (1 - minCMY), 3);
y = Math.Round((y - minCMY) / (1 - minCMY), 3);
k = Math.Round(minCMY, 3);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM