电脑配色(100分)

  • 主题发起人 主题发起人 zcm1975117
  • 开始时间 开始时间
Z

zcm1975117

Unregistered / Unconfirmed
GUEST, unregistred user!
目前想做一个电脑配色系统,请问那位高手指点一下。
我还不知道如果动手,有没有相应的参考一下呢?谢谢!!
zcm1975117@21cn.com
 
不说明白谁知道你要实现什么功能呢
 
具体的功能是调颜色的功能,比如几种颜色按某种比例就调配成一种新的颜色,
并在电脑上显示出调出颜色的效果!
 
把两种个眼色都分出 R G B 来
然后 (R1+R2)/2 (G1+G2)/2 (B1+B2)/2
生成新的rbg三色,就可以了
 
to Pipi:
谢谢你的解答,不过我对这方面了解很少,可以说具体一点吗?能不能抽点时间给我
写个例子,万分感谢!!
 
delphi本身就有例子
 
假如有颜色c1、c2按1:1混合
r:=(integer(GetRValue(c1))+integer(GetRValue(c2)))/2;
g:=(integer(GetGValue(c1))+integer(GetGValue(c2)))/2;
b:=(integer(GetBValue(c1))+integer(GetBValue(c2)))/2;
c:=RGB(r,g,b);//混合了的
----------------------
如果是1:2的话:
r:=(integer(GetRValue(c1))+2*integer(GetRValue(c2))) / 3;
g:=...
b:=...
……
---------------------
如果是2:3的话:
r:=(2*integer(GetRValue(c1))+3*integer(GetRValue(c2))) / 5;
g:=...
b:=...
……
 
to Pipi:
以下的程序怎么运行不了呢?请指教!
var
R,G,B:byte;
c,c1,c2:DWORD;
begin
c1:=clFuchsia;
c2:=clLime;
R:=(integer(GetRValue(c1))+integer(GetRValue(c2)))/2;
G:=(integer(GetGValue(c1))+integer(GetGValue(c2)))/2;
B:=(integer(GetBValue(c1))+integer(GetBValue(c2)))/2;
c:=RGB(r,g,b);//混合了的
end;
 
对了,我试了应该这样就能够通过了,各位还有没有更好的方法??
var
r,g,b:byte;
c,c1,c2:tcolor;
begin
c1:=clFuchsia;
c2:=clLime;
r:=(GetRValue (c1) + GetRValue (c2)) div 2;
g:=(GetGValue(c1)+GetGValue(c2)) div 2;
b:=(GetBValue(c1)+GetBValue(c2)) div 2;
c:=RGB(r,g,b);//混合了的
Panel1.Color:=c;
end;
 
to Pipi
你好!感谢你的帮助,请问如果是2种以上的颜色一起调配呢?有什么好的方法?请指教!
 
2种以上:
假如比例为 0.3,0.2,0.5
r:= Round( 0.3*GetRValue (c1) + 0.2*GetRValue (c2) + 0.5*GetRValue (c3) );
g:=..........
b:=.......................
 
接受答案了.
 

Similar threads

后退
顶部