怎么得到某一颜色的相反值?(50分)

  • 主题发起人 主题发起人 searoom
  • 开始时间 开始时间
S

searoom

Unregistered / Unconfirmed
GUEST, unregistred user!
想使用一函数实现颜色取反的功能,不知道该怎么实现!
 
换算rgb 然后r:=255-r g:=255-g b:=255-b
 
首先分解颜色值

function colortohex(cc:Tcolor):string
begin
result:=inttohex(colortorgb(cc),6) ;
result:=copy(result,5,2)+copy(result,3,2)+copy(result,1,2) ;
End ;

得到 R,G ,, B
用 255 减去 ,然后再用
RGB((255-r), ..., ..)
 
newcolor:=oldcolor xor $FFFFFF 这比较简单,效率高!
 
xor $FFFFFF
 
255 - 的方法和 xor 的方法显然是结果不同的, 到底哪个对 ?
 
对于正整数,减和异或结果是一样的。
function GetReverseColor(c:TColor):TColor;
begin
Result := RGB(255-GetRValue(C), 255-GetGValue(C), 255-GetBValue(C));
end;
 
多人接受答案了。
 
后退
顶部