Arbeitest du mit
TCanvas? Dort gibt es zwei Möglichkeiten:
Canvas.Pixels und
Canvas.ScanLine. Die erste erkläre ich kurz, für die zweite schaust du bitte in der Delphi-Hilfe nach. Sie ist zwar etwas komplizierter, aber auch sehr viel performanter.
Canvas.Pixels:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var PixelColor: TColor; R, G, B, H: Byte; begin PixelColor := Canvas.Pixels[X, Y];
R := (PixelColor and $00FF0000) div $10000; G := (PixelColor and $0000FF00) div $100; B := (PixelColor and $000000FF);
H := (R + G + B) div 3; end; |
Edit:: Ich bin beim Kopieren und Umschreiben mit der Delphi-Hilfe durcheinandergekommen, und da ist wohl etwas schief gelaufen. Wie
Jakob_Ullmann ganz richtig bemerkt, sind die Rot- und Blauwerte in Delphi genau andersherum.
Moderiert von
Narses: Delphi-Tag repariert