请先弄明白。RGB转CMYK的规律。
解决方案 »
- 参数传递问题,新手求解答!先谢谢了!
- 关于document.all.tags
- 请大侠们看看此网页是如何隐藏多媒体文件的?{顶者有分}
- 如何得到textarea里的内容?
- 在一个模态窗口,打开一个新的窗口(非模态),Session值失效,我该如何处理?
- 关于字符串的问题
- 怎样将已有的javascript文件放在一个button中
- 请教meizz!!和你哪个日历控件有点联系得问题
- 請問如何得到某一組件在頁面中的坐標位置?
- 如何用 javascript 给 xml 添加一个节点,并且赋予一个属性,给 100 分.
- ★★★关于动态在页面中添加控件的问题★★★
- style="cursor:hand;" 在Mozilla里面不起作用,该怎么写呀
我在转换rgb成hsv时到也转换回来,可为什么和电脑上的调色盘里的hsv显示的不一样!!很怪!!
转换规律没找着,没法帮你了
// RGB to CMY 色彩转换
function rgbtocmy () {
mycyan = 255 - myred;
mymagenta = 255 - mygreen;
myyellow = 255 - myblue;
correctCMYK();
} // CMY to RGB 色彩转换
function cmytorgb () {
myred = 255 - mycyan;
mygreen = 255 - mymagenta;
myblue = 255 - myyellow;
correctCMYK();
} // CMYK 色彩修正
function correctCMYK () {
if (rep_v != "ERR") {
var temp = Math.min(Math.min(mycyan, mymagenta), myyellow);
if (temp != 0) {
temp2 = Math.round((rep_v / 100) * temp);
rep_k = Math.round((temp2 / 255) * 100);
rep_c = Math.round(((mycyan - temp2) / 255) * 100);
rep_m = Math.round(((mymagenta - temp2) / 255) * 100);
rep_y = Math.round(((myyellow - temp2) / 255) * 100);
} else {
rep_c = Math.round((mycyan / 255) * 100);
rep_m = Math.round((mymagenta / 255) * 100);
rep_y = Math.round((myyellow / 255) * 100);
rep_k = 0;
}
}
}
出自http://www.xxy8.com/v2/2004-1/2004127133625.htm 的
自己看
跟上边的一样
<script>
var c=0
var m=100
var y=100
var k=45var a=Math.max(c,Math.max(m,y));
var maxval=Math.max(k,a);
var r = (k*c)/maxval;
var g = (k*m)/maxval;
var b = (k*y)/maxval;
document.write(r+","+g+","+b)
</script>
看不懂
void KisColor::RGBtoHSV(int R, int G, int B, int *H, int *S, int *V)
{
qDebug("KisColor::RGBtoHSV");
unsigned int max = R;
unsigned int min = R;
unsigned char maxValue = 0; // r=0, g=1, b=2
// find maximum and minimum RGB values
if (static_cast<unsigned int>(G) > max) { max = G; maxValue = 1; }
if (static_cast<unsigned int>(B) > max) { max = B; maxValue = 2; }
if (static_cast<unsigned int>(G) < min) min = G;
if (static_cast<unsigned int>(B) < min ) min = B;
int delta = max - min;
*V = max; // value
*S = max ? (510*delta+max)/(2*max) : 0; // saturation
// calc hue
if (*S == 0)
*H = -1; // undefined hue
else
{
switch (maxValue)
{
case 0: // red
if (G >= B)
*H = (120*(G-B)+delta)/(2*delta);
else
*H = (120*(G-B+delta)+delta)/(2*delta) + 300;
break;
case 1: // green
if (B > R)
*H = 120 + (120*(B-R)+delta)/(2*delta);
else
*H = 60 + (120*(B-R+delta)+delta)/(2*delta);
break;
case 2: // blue
if (R > G)
*H = 240 + (120*(R-G)+delta)/(2*delta);
else
*H = 180 + (120*(R-G+delta)+delta)/(2*delta);
break;
}
}
}
kimageshop'KisColor::RGBtoCMYK() (./koffice/kimageshop/core/kis_color.cc:409)
void KisColor::RGBtoCMYK(int R, int G, int B, int *C, int *M, int *Y, int *K)
{
qDebug("KisColor::RGBtoCMYK");
int min = (R < G) ? R : G;
*K = (min < B) ? min : B;
*C = 255-(R - *K);
*M = 255-(G - *K);
*Y = 255-(B - *K);
}