已知颜色如何用Delphi求出该色的RGB分量值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已知颜色如何用Delphi求出该色的RGB分量值?相关的知识,希望对你有一定的参考价值。

我想做一个程序,用于设定窗体的颜色,想要用toolbar来定义颜色的三个RGB分量,但是希望刚执行程序时,toolbar能显示出窗体原来颜色的RGB分量,但是我不知道这三个值怎么能分别求出来,希望各位给个思路吧,谢了。
如果给出解答会追加积分
那个能不能解释一下?
result := byte(color shr 16);
shr是?

参考技术A functuin GetRValue(color : integer) : byte;
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分量值?的主要内容,如果未能解决你的问题,请参考以下文章

如何用JS随机背景颜色?

如何用matlab计算出图片中的RGB3个矩阵

如图 如何用MATLAB求出蓝色和红色点的图(只有蓝色和红色点的图,其他不要),然后怎么建立坐标

delphi 如何用消息发送一个记录

java中如何用Color()方法设置出米黄、灰蓝等颜色?

如何用js解决字体颜色随机变换?