请教读取颜色RGB值的源码及实现方法? 因为毕业设计需要,而我自己对于多媒体方面一直没有涉及,请各位大虾帮帮忙。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function GetColor(const ACanvas:tCanvas;x,y:integer):TColor;beginresult := ACanvas.pixels[x,y];end;x,y就是你要的点的位置 GetGValue(TColor),GetRValue(TColor),GetBValue(TColor) TO:如果我想飞X,Y值不是我自己输入,而是想要鼠标的位置,请问怎么做? ACanvas.pixels[x,y];指的是画布中的某个象素的颜色,Image.Canvas或者Image.Picture.Bitmap.CanvasGetGValue(TColor),GetRValue(TColor),GetBValue(TColor)这个方法还是比较简单的。 GetGValue(TColor),GetRValue(TColor),GetBValue(TColor)怎么用呢? //这是个演示程序,你试后一定收效颇肥阿!!//但是,肥了后,可不要忘了给我加分啊!!unit Ugetcor;interfaceuses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons;type Tgetcol = class(TForm) Panel1: TPanel; Label1: TLabel; Label2: TLabel; procedure FormClick(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Panel1Click(Sender: TObject); procedure FormDblClick(Sender: TObject); procedure FormResize(Sender: TObject); private tx,ty : integer; procedure WMEraseBkng(var MSg:TWMEraseBkgnd);message WM_ERASEBKGND; public { Public declarations } end;var getcol: Tgetcol;implementation{$R *.DFM}const Digits : array[0..$F] of Char = '0123456789ABCDEF';function HexB(B : Byte) : string; {-Return hex string for byte}begin HexB[0] := #2; HexB[1] := Digits[B shr 4]; HexB[2] := Digits[B and $F]; //对Delphi5将上三行改为:HexB:=Digits[B shr 4]+Digits[B and $F];end;procedure Tgetcol.WMEraseBkng(var MSg:TWMEraseBkgnd);begin Msg.Result:=1;end;procedure Tgetcol.FormClick(Sender: TObject);var t : tcolor;r,g,b : byte;begint := canvas.pixels[tx,ty];r := getRvalue(t);g := getGvalue(t);B := getBvalue(t);LABEL2.COLOR := T;LABEL1.CAPTION := '$00' + HEXB(R) + HEXB(G) + HEXB(B);end;procedure Tgetcol.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begintx := x;ty := y;end;procedure Tgetcol.Panel1Click(Sender: TObject);beginCLOSE;end;procedure Tgetcol.FormDblClick(Sender: TObject);beginclose;end;procedure Tgetcol.FormResize(Sender: TObject);beginpanel1.top := height - panel1.height -1;panel1.left := width - panel1.width -1;panel1.visible := true;end;end. 在RAVE中如何显示表中字段中保存的JPG格式的图片? 象这种情况,如何快速排序? 如何添加一个xml文件的节点? 如何将某一表的记录全部追加到另外一张表用ADOQUERY! 请问:把做好的程序制作成安装程序,你用什么软件好呢?(最好是中文版的哟,在线等待) 有关listbox和checklistbox的难题 如何得到一个文件的修改时间?? NEMA-0183标准!!!!!!!! 数据的录入 在一个控件的事件执行过程中如何不让系统发出提示或警告声? 如何实现无闪烁的移动字幕? 超Cool帖子!!希望大家多多掺和-------------希望能置顶!!
begin
result := ACanvas.pixels[x,y];
end;x,y就是你要的点的位置
X,Y值不是我自己输入,而是想要鼠标的位置,请问怎么做?
或者Image.Picture.Bitmap.CanvasGetGValue(TColor),GetRValue(TColor),GetBValue(TColor)
这个方法还是比较简单的。
//但是,肥了后,可不要忘了给我加分啊!!
unit Ugetcor;interfaceuses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, ExtCtrls, Buttons;type
Tgetcol = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
procedure FormClick(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Panel1Click(Sender: TObject);
procedure FormDblClick(Sender: TObject);
procedure FormResize(Sender: TObject);
private
tx,ty : integer;
procedure WMEraseBkng(var MSg:TWMEraseBkgnd);message WM_ERASEBKGND;
public
{ Public declarations }
end;var
getcol: Tgetcol;
implementation{$R *.DFM}
const
Digits : array[0..$F] of Char = '0123456789ABCDEF';function HexB(B : Byte) : string;
{-Return hex string for byte}
begin
HexB[0] := #2;
HexB[1] := Digits[B shr 4];
HexB[2] := Digits[B and $F];
//对Delphi5将上三行改为:HexB:=Digits[B shr 4]+Digits[B and $F];
end;procedure Tgetcol.WMEraseBkng(var MSg:TWMEraseBkgnd);
begin
Msg.Result:=1;
end;procedure Tgetcol.FormClick(Sender: TObject);
var t : tcolor;
r,g,b : byte;
begin
t := canvas.pixels[tx,ty];
r := getRvalue(t);
g := getGvalue(t);
B := getBvalue(t);
LABEL2.COLOR := T;
LABEL1.CAPTION := '$00' + HEXB(R) + HEXB(G) + HEXB(B);
end;procedure Tgetcol.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
tx := x;
ty := y;
end;procedure Tgetcol.Panel1Click(Sender: TObject);
begin
CLOSE;
end;procedure Tgetcol.FormDblClick(Sender: TObject);
begin
close;
end;procedure Tgetcol.FormResize(Sender: TObject);
begin
panel1.top := height - panel1.height -1;
panel1.left := width - panel1.width -1;
panel1.visible := true;
end;end.