已知颜色如何用Delphi求出该色的RGB分量值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已知颜色如何用Delphi求出该色的RGB分量值?相关的知识,希望对你有一定的参考价值。
我想做一个程序,用于设定窗体的颜色,想要用toolbar来定义颜色的三个RGB分量,但是希望刚执行程序时,toolbar能显示出窗体原来颜色的RGB分量,但是我不知道这三个值怎么能分别求出来,希望各位给个思路吧,谢了。
如果给出解答会追加积分
那个能不能解释一下?
result := byte(color shr 16);
shr是?
begin
result := byte(color shr 16);
end;
function GetGValue(color : integer) : byte;
begin
result := byte(color shr 8);
end;
function GetBValue(color : integer): byte;
begin
result := byte(color);
end;
function rgb(r,g,b:byte):integer;
begin
result := (integer(r) shl 16) + (integer(g) shl 8) + integer(b);
end;本回答被提问者采纳
如何用delphi编程获取其他程序窗口内的象素颜色信息等?
如何用delphi编程获取其他程序窗口内的象素颜色信息等?
参考技术A 使用这个函数,COLORREF
GetPixel(
HDC
hdc,
//
handle
to
DC
int
nXPos,
//
x-coordinate
of
pixel
int
nYPos
//
y-coordinate
of
pixel
);
可以调用之前调用GerCursorPos
来获取鼠标在屏幕上的位置,
如果仅仅是为了取色的话,桌面窗口的HDC的获取,调用GetDC(NULL)来获取到,(不知到delphi里NULL写成什么样子,写成
GetDC(0)也可以。)
在把GerCursorPos
获取的屏幕坐标也给传过去,GetPixel即可返回屏幕坐标的相应颜色值了。
COLORREF
是一个
DWORD
类型,自己分析高低为就可以知道RGB值了。
可以参考使用GetRValue,GetGValue,GetBValue
宏
以上是关于已知颜色如何用Delphi求出该色的RGB分量值?的主要内容,如果未能解决你的问题,请参考以下文章