如何得到任意一点的颜色值?(100分)

  • 主题发起人 主题发起人 xyf2001721
  • 开始时间 开始时间
X

xyf2001721

Unregistered / Unconfirmed
GUEST, unregistred user!
如何得到任意一点的颜色值?
 
卷起千堆雪tyn:哇,这分拿得台舒服了!
 
据我所知GetPixels只能拿到24位值。那32位的呢?
 
是任意一点吗?
顺序使用以下api函数:
1.getwindowfrompoint
2.getwindowDC
3.TCanvas(MyDC).Pixels[x,y]
 
我这里有一个小工具,是用PB编的,只要对准某一点即可得到其RGB三值!我刚上论坛不知
如何查到你的E-MAIL,我的是:hydccb@163.net!你要,来个信吧!
 
呵呵!灌水都没机会了!
是不是还要将它分解为三原色啊!

function GetRColor(const color: TColor): Byte;
begin
Result := Color and $FF;
end;

function GetGColor(const color: TColor): Byte;
begin
Result := hi(Color and $FF00);
end;

function GetBColor(const color: TColor): Byte;
begin
Result := hiword(Color and $FF0000);
end;


 
var
aa :TColor;

aa :=Canvas.Pixels[x,y];
 
对啊,有个“ColorSpy”的软件,运行后把鼠标在屏幕上移动,就可以得到屏幕上鼠标位置
的颜色,并用RGB表示出来。而他的运行窗口却只有一点点大。
这个功能是怎么样实现的?还请高手赐教。:)
 
这有何难,试试我的!

var
MyColor: TColor;
begin
MyColor := Image1.Canvas.Pixels[x, y];
Label1.Caption := format('Red: %d; Green: %d; Blue:%d',
[GetRValue(MyColor), GetGValue(MyColor), GetBValue(MyColor)]);
end;
 
十分感谢大虾相助
 
多人接受答案了。
 
后退
顶部