AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi schwarze Pixel weg : copyMode cmSrcAND cmSrcPaint zu langsam
Thema durchsuchen
Ansicht
Themen-Optionen

schwarze Pixel weg : copyMode cmSrcAND cmSrcPaint zu langsam

Ein Thema von henrik · begonnen am 27. Dez 2004 · letzter Beitrag vom 27. Dez 2004
Antwort Antwort
Seite 2 von 2     12   
henrik

Registriert seit: 25. Nov 2003
36 Beiträge
 
Delphi 2007 Professional
 
#11

Re: schwarze Pixel weg : copyMode cmSrcAND cmSrcPaint zu lan

  Alt 27. Dez 2004, 16:11
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 ?
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: schwarze Pixel weg : copyMode cmSrcAND cmSrcPaint zu lan

  Alt 27. Dez 2004, 16:16
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

Gruss,
Fabian

\\edit: Korrektur: Die Methode nutzt "StretchDIBits", welches ein API-Call ist.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
henrik

Registriert seit: 25. Nov 2003
36 Beiträge
 
Delphi 2007 Professional
 
#13

Re: schwarze Pixel weg : copyMode cmSrcAND cmSrcPaint zu lan

  Alt 27. Dez 2004, 18:18
das ist es ! 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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz