![]() |
Re: Differenz zweier Bitmaps speichern
Zitat:
Hier der Code noch mal ausführlicher:
Delphi-Quellcode:
procedure DifZweierBilder(ZielDC,DC1,DC2:HDC);
begin // ( DC1 and ( not ( DC1 and DC2 )) damit sollte folgendes ausgedrückt werden // erstmal kopieren BitBlt(ZielDC,0,0,1024,768,DC1,0,0,SRCCOPY); // die innere UND-Verknüpfung BitBlt(DC1,0,0,1024,768,DC2,0,0,SRCAND); // die UND-NICHT verknüpfung BitBlt(ZielDC,0,0,1024,768,DC1,0,0,NOTSRCAND); end; // Aufruf durch DifZweierBilder(ZielCanvas.Handle,Canvas1.Handle,Canvas2.Handle); |
Re: Differenz zweier Bitmaps speichern
notsrcand gibt es bei mir nicht ???
|
Re: Differenz zweier Bitmaps speichern
wie mach ich das denn nun ??
also ich bekomme mit bitblt(dc2,0,0,W,H,dc1,0,0,mergepaint) schon so zimich genau die differenz der beiden bilder hin wie komme ich jedoch mit hilfe von dc1 und der differenz, welche nun in dc2 liegt, wieder zum ausgangsbild dc2 ??? also nochmal ich hab dc1 (vor veränderung) und dc2 (nach veränderung) mit bitblt(dc2,0,0,W,H,dc1,0,0,mergepaint) liegt nun in dc2 die eigentliche veränderung (reduziert auf die teile die sich auch wirklich verändert haben) wie bekomme ich nun aus dc1 und dc2 wieder das ehemalige dc2, also das komplette bild und nicht nur die veränderungen?? wäre sehr nett wenn mir da jemand helfen könnte |
Re: Differenz zweier Bitmaps speichern
vllt mit einer or-Verschaltung.
|
Re: Differenz zweier Bitmaps speichern
nö, dann kommt bei mir wieder dc1 raus, das bring mir ja nix, will ja dc2 haben
|
Re: Differenz zweier Bitmaps speichern
nein, du hast ja auf dem Kontrollrechner schon ein komplettes Bild gespeichert. Jetzt musst du dieses ja mit den Werten, die per ISDN reingetrudelt kommen, ergänzen. Wenn du ein PNG-Bild hast, würde einfach canvas.draw reichen: zielbmp.canvas.draw(0,0,png);
|
Re: Differenz zweier Bitmaps speichern
jo habs hinbekommen :-) jetzt nur noch einne frage
wenn ich die differenz zweier bitmaps mit bitblt errechne bekomme ich, falls die bilder gleich sind als differenz ein schwarzes bild (keine differenz wird bei scrinvert zu schwarz). wie kann ich jetzt in meiner routine prüfen ob die beiden bilder überhaupt einen unterschied hatten. wenn ich jetzt mit scanline arbeite wäre der geschwindigkeitsvorteil von bitblt ja zu nichte. gibt es eine funktion die z.b. prüft wieviel farben in einer bitmap sind, oder hat jemand ne andere idee ??? |
Re: Differenz zweier Bitmaps speichern
:mrgreen: nicht bös sein aber wer lesen kann ist klar im vorteil :zwinker:
in meinem post auf seite 1 hast du die komplette methode zum rauskopieren ob sich die bitmaps unterscheiden oder nicht. |
Re: Differenz zweier Bitmaps speichern
hmm, aber dass ist ja wieder mit dem langsamen scanline realisiert ??
da kann ich ja alles darüber laufen lassen, wenn ich das schnelle bitblt mit dem langsamen scanline ausbremse |
Re: Differenz zweier Bitmaps speichern
das ist schnell genug hab ich mit tickcount überprüft.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 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