Autor Beitrag
rhodan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Di 01.02.11 20:51 
hi...ich schreibe zZ ein tool, welches von einer bestimmten bildschirmkoordinate die farbwerte ausliest bzw die farbe auf das panel überträgt:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Timer1Timer(Sender: TObject);
var
DT: THandle;
C: TCanvas;
begin
 DT := GetDC(0);
 C := TCanvas.Create;
 C.Handle := DT;
 panel1.color := c.Pixels[670,274];
  ReleaseDC(Handle, DT);
 C.Free;


mein ziel ist es nun, das nicht die farbe auf dem panel angezeigt wird, sondern das anhand der RGB werte des pixels entschieden wird welche farbe der pixel hat, das kann ruhig sehr grob geschehen...also wenn der pixel der ausgelesen wird in die leicht rötliche richtung geht soll auf dem panel einfach nur "ROT" stehen usw...ich dachte mir ich mache das via einer color range...


unter private:

ausblenden Delphi-Quelltext
1:
 line:PRGBQUAD;					


und dann via

ausblenden Delphi-Quelltext
1:
if (line.rgbRed in [200..248]) and (line.rgbGreen in [0..41]) and (line.rgbBlue in [9..50]) then					


die colorrange angeben in welcher sich eine bestimmte farbe bewegt...könnte das so funktionieren? konnte das noch nicht testen leider. oder bin ich was die colorranges angeht auf nem ganz falschen dampfer? ich will die farben wie gesagt nur grob definieren und die farbe soll als wort dann auf dem panel angezeigt werden.

vielen dank!


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 01.02.2011 um 21:09
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Di 01.02.11 21:14 
Das müsstest du einfach mal testen...

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 01.02.11 22:09 
Moin!

Schau dir mal den HSV-Farbraum an, damit solltest du weiter kommen (gibt entsprechende Funktionen in Delphi dafür, IIRC). :idea: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 01.02.11 23:06 
Siee auch hier.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.

Für diesen Beitrag haben gedankt: Narses
rhodan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Mi 02.02.11 00:10 
hey ihr, vielen dank für die antworten! ich habs jetzt zu testzwecken erstmal so eingestellt das wenn die farbe vom pixel in einem bestimmten bereich ist entweder clblue oder clmaroon als farbe angezeigt wird.
ich habs eben getested und es klappt auch auf folgendem weg mit meinem timer (100ms):

Moderiert von user profile iconNarses: 2. Frage entfernt.