Du könntest schauen, ob sich einige Pixel geändert haben!
Ich vergleiche praktisch Pixel für Pixel miteinander.
Dazu speicherst du jede Sekunde ein Bild und vergleichst es mit dem voherigen.
Ich habe mal eine kleine Routine geschrieben, der Code ist wohl aber nicht ganz optimal:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| function ComparePics: Boolean; var x, y, count: integer; BM1, BM2: TBitmap; begin Result := false;
BM1 := TBitmap.Create; BM2 := TBitmap.Create;
try BM1.LoadFromFile('d:\Unbenannt.bmp'); BM2.LoadFromFile('d:\Unbenannt_3.bmp');
for x := 1 to BM1.Width - 1 do for y := 1 to BM2.Height - 1 do if (BM1.Canvas.Pixels[x, y] <> BM2.Canvas.Pixels[x, y]) then inc(count);
if count > 100 then result := True; finally BM1.Free; BM2.Free; end; end;
procedure TForm1.Button1Click(Sender: TObject); begin if comparepics then showmessage('Alarm!'); end; |
Vielleicht hilft es dir weiter
grüße marc