是否可以创建用户输入CMYK值的aspx页面,并显示CMYK颜色?
我做了一些谷歌搜索,System.Drawing库似乎使用RGB。
答案 0 :(得分:1)
不,这是不可能的。 HTML / CSS和.NET的System.Drawing都是基于RGB的。虽然您可以使用颜色转换器将CMYK转换为RGB,但它不是完美的1对1映射,因为CMYK颜色空间中的颜色无法用RGB表示,反之亦然。
但是,要更加面向解决方案:以下代码将为您提供简单的转换:
CMYK到RGB
int r = (int) 255 * (1 - (c * (1 - k) + k));
int g = (int) 255 * (1 - (m * (1 - k) + k));
int b = (int) 255 * (1 - (y * (1 - k) + k));
RGB到CMYK
float c = 1 - r / 255f;
float m = 1 - g / 255f;
float y = 1 - b / 255f;
float k = c;
if (k > m)
k = m;
if (k > y)
k = y;
if (k == 1)
{
c = 0; m = 0; y = 0;
}
else
{
c = (c - k) / (1 - k);
m = (m - k) / (1 - k);
y = (y - k) / (1 - k);
}
请注意,c,y,m和k的范围为0 - 1(即0% - 100%),r,g,b的范围为0 - 255.
答案 1 :(得分:1)
你不能直接。这将给出从cmyk到rgb的良好近似值
private Color CMYKtoRBG(float c, float m, float y, float k)
{
float r = Math.Min(1, c * (1 - k) + k);
float g = Math.Min(1, m * (1 - k) + k);
float b = Math.Min(1, y * (1 - k) + k);
return Color.FromArgb(255-(int)(r * 255),255- (int)(g * 255), 255-(int)(b * 255));
}