![]() |
Pixelübertragung auf PaintBox
Mahlzeit zusammen,
Delphi bin ich gerade erst am herunterladen, musste leider meinen PC formatieren. Trotzdem habe ich eine Art Pseudocode aufgeschrieben, damit ich es gleich so schnell wie möglich umsetzen kann ;) Mein Vorhaben: Erst einmal Pixel um den Mauszeigerbereich in das Programm in eine Paintbox übertragen. Später werde ich es dann vergrößern. Jedoch bin ich mir ziemlich sicher, dass meine Methode extrem langsam sein wird, da ich schon einmal Probleme mit einer ähnlichen Idee hatte. Hier mal der Codeschnipsel:
Delphi-Quellcode:
Das ganze wird voraussichtlich über einen Timer aufgerufen:
procedure magnify(x,y:integer; pb:tpaintbox);
var xt,yt:integer; begin for xt:=-10 to 10 do for yt:=-10 to 10 do begin pb.canvas.pixels[xt,yt]:=getpixel(getwindowdc(getdesktopwindow),x+xt,y+yt); end; end;
Delphi-Quellcode:
Nun, jetzt frage ich euch, wie man das ganze schneller realisieren könnte :)
procedure timer(sender:tobject);
begin magnify(mouse.cursorpos.x,mouse.cursorpos.y,paintbox); end; Folgende Ideen sind mir gekommen, um es zu beschleunigen: - Pixelfarben in ein Array übertragen, von dort aus in die Paintbox - Direkt in ein Bitmap malen, dann auf die Paintbox übertragen - "Screenshot" anfertigen, Bereich ausschneiden und in Paintbox übertragen - Möglicher Weise ein Windows-Paintereignis abfangen und Informationen "klauen" Wie würdet ihr rangehen? Vielen Dank im Voraus, liebe Grüße, Frank. |
Re: Pixelübertragung auf PaintBox
Hallo,
da ganze würde ich mit einem ![]() Zitat:
EDIT:Oder gleich mit BitBlt() Das Bild vom Desktop auf deine Paintbox zeichnen. |
Re: Pixelübertragung auf PaintBox
Klappt bestens mit BitBlt, vielen Dank :D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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 by Thomas Breitkreuz