![]() |
Desktop Filmen -> Flackern entfernen
Hey,
Ich bin grad dabei mir ein kleines Tool zu schreiben, dass mir einen bestimmten (wählbaren) Bereich des Desktops in einem Fenster vergrößert, oder verkleinert ausgibt. In Echtzeit. Dabei greife ich über ein Canvasobjekt mit dem Desktop-HDC auf den Desktop zu, kopier das betreffende Rechteck, streck dieses und zeichne es auf mein Formular. Das funktioniert auch woweit priema. Solange ich auf der Windowsiberfläche bin. Wenn ich jedoch (in meinem Fall Ultrastar) dublizieren möchte fängt mein "Film" an zu flimmern. Ich hab jetz mal die erstellten Bitmaps der Screenklone gespeichert und festgestellt, dass diese plötzlich weiße Streifen haben. Die werden natürlich angezeigt und verursachen das flimmern. Mein bisheriger Versuch dieses Flimmern abzustellen sieht so aus: Ich suche nach durchgängig weißen Linien im Bitmap und wenn ich sowas finde, dann ersetz ich diese bereiche durch Teile eines vorherigen Screenshots.
Delphi-Quellcode:
Prinzipiell funzt dass auch, is aber sowas von laaaaam, dass des Bild manchmal für mehrere Sekunden stehen bleibt.
procedure TViewRect.AntiWhite;
var x, y: integer; whiteline: boolean; begin for y := 0 to DRect.Bottom -1 do begin if (Bmp2[AktBmp2].Canvas.Pixels[0,y] = $00FFFFFF) then begin whiteline := true; for x := 1 to DRect.Right -1 do if not(Bmp2[AktBmp2].Canvas.Pixels[x,y] = $00FFFFFF) then begin whiteline := false; break; end; if whiteline then begin Bmp2[AktBmp2].Canvas.CopyRect(Rect(0,y-1,DRect.Right,y),Bmp2[LastBmp2].Canvas,Rect(0,y-1,DRect.Right,y)); end; end; end; end; Hat jemand en Vorschlag, wie man das ganze beschleunigen kann? mfg |
Re: Desktop Filmen -> Flackern entfernen
Guck dir mal ScanLine an. Das dürfte schneller sein als jeden Pixel einzeln auszulesen.
|
Re: Desktop Filmen -> Flackern entfernen
Hey super !!
Danke für die schnelle Antwort Luckie War genau, was ich gebraucht hab. -- Closed -- |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 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