![]() |
Re: schwarze Pixel weg : copyMode cmSrcAND cmSrcPaint zu lan
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 ? |
Re: schwarze Pixel weg : copyMode cmSrcAND cmSrcPaint zu lan
Nun, du kannst ein TBitmap32 auf ein beliebigen Canvas zeichnen. "TBitmap32.DrawTo(TCanvas.Handle, X, Y);"
Damit lässt sich also auch eine normale PaintBox vollkleistern :). Ob das nun aber schneller weiss ich nicht - einen Versuch wäre es wohl wert. (Im Hintergrund arbeitet da meine ich dann ein "BitBlt".) Das mit dem Timer: Oki, bin von nem normalen Timer ausgegangen :drunken: Gruss, Fabian \\edit: Korrektur: Die Methode nutzt "StretchDIBits", welches ein API-Call ist. |
Re: schwarze Pixel weg : copyMode cmSrcAND cmSrcPaint zu lan
das ist es ! :hello: danke dizzy
es funktioniert : mit 3 msec Interval nur ca. 4 % auslastung, und das mit einigen copyRects, drawTo's und pixel-manipulationen mit G32. grüsse henrik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz