hey dizzy,
ich verwende doch den MMTimer ! (ich weiss : der TTimer ist sehr ungenau )
Das Dilemma ist im Augenblick :
-mit G32 kann man superschnelle Pixelmanipulationen machen, dafür klappts mit dem Anzeigen des bearbeiteten Bildes nur schlecht (bei mir zumindest).
-mit der normalen TPaintbox und copyrects... kostest das Anzeigen nichts !!,siehe code, (selbst bei 3 msec nur ca. 2% Auslastung) , dafür bremsen Pixelmanipulationen das ganze wieder auf 70 %.
Das folgende mit den ganzen copyRects-hin und hergeschiebe kostet fast nix bei timerInterval von 3 msec (!!!!) :
Nur fehlen leider die Pixelmanipulationen :
Delphi-Quellcode:
procedure TForm1.viewTimerTimer(Sender: TObject; Time: Cardinal);
var tr : TRect;
begin
tr.Left:=10;
tr.Top:=frameNr;
tr.Right:=10+viewRect.Right;
tr.Bottom:=frameNr+viewRect.Bottom;
buffer.Canvas.CopyMode:=cmSrcCopy;
buffer.Canvas.CopyRect(viewRect,orgImage.Canvas,tr);
buffer.Canvas.CopyRect(stdCarPos,carMask.Canvas,carRect);
buffer.Canvas.CopyRect(stdCarPos,car.Canvas,carRect);
PaintBox1.Canvas.CopyMode:=cmSrcCopy;
PaintBox1.Canvas.CopyRect(viewRect,Buffer.Canvas,viewRect);
dec(frameNr,shiftAdd);
if frameNr<10
then frameNr:=OrgImage.Height-700;
end;
Man müsste beides kombinieren können. Mit G32 manipulieren und mit dem anderen das Ergebnis anzeigen.
Ein TImage32 in ein TImage umwandeln ?