rhodan - Di 01.02.11 20:51
Titel: RGB werte "grob" nach Farben unterteilen
hi...ich schreibe zZ ein tool, welches von einer bestimmten bildschirmkoordinate die farbwerte ausliest bzw die farbe auf das panel überträgt:
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:
und dann via
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
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 01.02.2011 um 21:09
rhodan - 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
Narses: 2. Frage entfernt.