C# RGB转CMYK

24 篇文章 0 订阅

调用:

Color c=...;

byte[] cmyk=RGBToCMY(c.R, c.G, c.B);

 

        byte[] RGBToCMY(byte red, byte green, byte blue)//RGB转CMY  
        {
            byte cyan = (byte)255 - red;
            byte magenta = (byte)255- green;
            byte yellow = (byte)255 - blue;
            return CorrectCMYK(cyan, magenta, yellow, (byte)20);//修正值  
        }
        byte[] CorrectCMYK(byte cyan, byte magenta, byte yellow, byte rep_v)//色彩修正  
        {
            byte temp = Math.Min(Math.Min(cyan, magenta), yellow);
            byte rep_k, rep_c, rep_m, rep_y;
            if (temp != 0)
            {
                byte temp2 = (byte)((rep_v / 100.0) * temp+0.9);
                rep_k = (byte)(temp2 / 255.0 * 100+0.9);
                rep_c = (byte)((cyan - temp2) / 255.0 * 100+0.9);
                rep_m = (byte)((magenta - temp2) / 255.0 * 100+0.9);
                rep_y = (byte)((yellow - temp2) / 255.0 * 100+0.9);
            }
            else
            {
                rep_c = (byte)(cyan / 255.0 * 100+0.9);
                rep_m = (byte)(magenta / 255.0 * 100+0.9);
                rep_y = (byte)(yellow / 255.0 * 100+0.9);
                rep_k = 0;
            }
            byte[] bt = new byte[4] { rep_c, rep_m, rep_y, rep_k };
            return bt;
        } 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值