Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Differenz zweier Bitmaps speichern (https://www.delphipraxis.net/58849-differenz-zweier-bitmaps-speichern.html)

Cicaro 15. Dez 2005 10:14

Re: Differenz zweier Bitmaps speichern
 
Zitat:

Zitat von meisteralex
jetzt versteh ich nur noch bahhof *g*

Wie gesagt sollte man nach den RICHTIGEN Konstanten in der Delphi-Hilfe suchen.
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);

meisteralex 20. Dez 2005 13:06

Re: Differenz zweier Bitmaps speichern
 
notsrcand gibt es bei mir nicht ???

meisteralex 20. Dez 2005 13:16

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

ichbins 20. Dez 2005 13:25

Re: Differenz zweier Bitmaps speichern
 
vllt mit einer or-Verschaltung.

meisteralex 20. Dez 2005 13:34

Re: Differenz zweier Bitmaps speichern
 
nö, dann kommt bei mir wieder dc1 raus, das bring mir ja nix, will ja dc2 haben

ichbins 20. Dez 2005 13:47

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);

meisteralex 21. Dez 2005 07:53

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 ???

etom291272 21. Dez 2005 11:42

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.

meisteralex 21. Dez 2005 14:23

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

etom291272 21. Dez 2005 14:52

Re: Differenz zweier Bitmaps speichern
 
das ist schnell genug hab ich mit tickcount überprüft.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr.
Seite 2 von 3     12 3      

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