获取鼠标位置的RGB值与灰度值
这问题困扰一个星期了,一直没解决, 实在没办法了来求助万能的CSDN。
问题上:
获取鼠标位置的RGB值与灰度值。
在网上也搜了很多代码,但要么运行不了,要么获取的就是16进制的颜色代码,我需要的是10进制的整数。
我的代码如下:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
t : TColor;
r,g,b : byte;
s,rr,gg,bb: String;
begin
//t := canvas.pixels[x,y];
t := Image1.Picture.Bitmap.Canvas.Pixels[x,y];
r := getRvalue(t);
g := getGvalue(t);
B := getBvalue(t);
rr:= IntToStr(r);
rr:= FloatToStr(StrToFloat(rr)* 0.299);
s:= s+'R颜色:'+rr;
gg:= IntToStr(g);
gg:= FloatToStr(StrToFloat(gg)* 0.587);
s:= s+' G颜色:'+gg;
bb:= IntToStr(b);
bb:= FloatToStr(StrToFloat(bb)* 0.114);
s:= s+' B颜色:'+bb;
//s:= s+' '+FloatToStr(StrToFloat(rr)+StrToFloat(gg)+StrToFloat(bb));
s:= s+' '+FloatToStr(t);
LABEL1.Caption:=s+' '+IntToStr(x)+' '+IntToStr(y);
end;
这段代码的问题:1鼠标移动色值不变.
2获取不了灰度值
望各位给个方法或函数,万分感激。。