日期:2014-05-20  浏览次数:21328 次

图片格式转换:RGB 转 CMYK
环境:NET C#,
求图片格式转换:RGB 转 CMYK 的具体实现代码,最好是c#代码,谢谢!

------解决方案--------------------
下载个格式转换工厂
------解决方案--------------------
C# RGB转CMYK
------解决方案--------------------
CMYK主要做啥子用呢?第一次看到这种格式,同时收藏一下。
------解决方案--------------------
菜鸟,不懂你说的格式 学习下哈
------解决方案--------------------
Color c=...;

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

view plaincopy to clipboardprint?
byte[] RGBToCMY(byte red, byte green, byte blue)//RGB转CMY
{
byte cyan = (byte)(255 - (int)red);
byte magenta = (byte)(255 - (int)green);
byte yellow = (byte)(255 - (int)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)
{
int temp2 = (byte)Math.Round((double)((int)rep_v / 100) * temp);
rep_k = (byte)Math.Round((double)(temp2 / 255) * 100);
rep_c = (byte)Math.Round((double)(((int)cyan - temp2) / 255) * 100);
rep_m = (byte)Math.Round((double)(((int)magenta - temp2) / 255) * 100);
rep_y = (byte)Math.Round((double)(((int)yellow - temp2) / 255) * 100);
}
else
{
rep_c = (byte)Math.Round((double)((int)cyan / 255) * 100);
rep_m = (byte)Math.Round((double)((int)magenta / 255) * 100);
rep_y = (byte)Math.Round((double)((int)yellow / 255) * 100);
rep_k = 0;
}
byte[] bt = new byte[4] {rep_c,rep_m,rep_y,rep_k };
return bt;
}



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mngzilin/archive/2010/05/05/5561090.aspx