image取一条线上所有点的值(区别) |
尚未結案
|
chenliyan163
一般會員 發表:30 回覆:30 積分:12 註冊:2003-09-15 發送簡訊給我 |
procedure LineDDAProc(x,y:integer;dwParam:DWORD) ; stdcall ;
var
cl : integer ;
begin
cl:=GetBValue(Form1.Image1.Canvas.Pixels[x,y]) ;
form1.Memo1.Lines.add(format('X=%d, y=%d, Color=%d',[x,y,intToStr(cl)])) ;
end ; procedure TForm1.BitBtn1Click(Sender: TObject);
begin
LineDDA(iStartX,iStartY,iOldX,iOldY,@LineDDAProc,0) ;
end; 上面所取的值怎么越黑的地方反而值会越大?
下面这个直接取的值怎么越黑反而越小?这两者怎么样才可以等同? cl:=GetBValue(Form1.Image1.Canvas.Pixels[x,y]) ;
|
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
引言: 上面所取的值怎么越黑的地方反而值会越大? 下面这个直接取的值怎么越黑反而越小?这两者怎么样才可以等同? cl:=GetBValue(Form1.Image1.Canvas.Pixels[x,y]) ;基本上顏色的表示是用 RGB R=255, G=255, B=255 時表示白色 R=0, G=0, B=0 時表示黑色. 所以顏色越黑, 應該 B 值會比較小. 當然, 這樣的前提是 R和G 不變. ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com |
chenliyan163
一般會員 發表:30 回覆:30 積分:12 註冊:2003-09-15 發送簡訊給我 |
谢谢aquarius
但为什么下面的程序所取出来越黑的地方反而值越大呢? procedure LineDDAProc(x,y:integer;dwParam:DWORD) ; stdcall ;
var
cl : integer ;
begin
cl:=GetBValue(Form1.Image1.Canvas.Pixels[x,y]) ;
form1.Memo1.Lines.add(format('X=%d, y=%d, Color=%d',[x,y,intToStr(cl)])) ;
end ; procedure TForm1.BitBtn1Click(Sender: TObject);
begin
LineDDA(10,10,10,20,@LineDDAProc,0) ;//这等于是取从10-20直线上的点,
end;
|
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |