![]() |
Schnelles Löschen von allen Pixeln im Image
Hallo,
langer Titel, ich weis. Also ich zeichne auf ein Image indem ich die Farbe einzelner Pixel ändere. Wie bekomme ich diese Farbhaltigen Pixel schnell weg, ohne dies zu machen, da dies zu lange dauert und das Ganze bild verschwinden lässt: form1.image1.picture:=nil; Ich würde gerne so etwas haben wie das nur im Image: form1.refresh; Hoffe ich habs einigermaßen verständlich erklärt. Alexander Danke im Vorraus |
Re: Schnelles Löschen von allen Pixeln im Image
Du willst also dein Bild "leeren", also alle Bildinformationen löschen? Canvas.Rectangle in Verbindung mit Pen und Brush ;)
(Und bei der G32-Lib gibts ein "TBitmap32.Clear(farbe)" ;)) |
Re: Schnelles Löschen von allen Pixeln im Image
Hi, das funktioniert zwar ist aber genauso langsam wie picture:=nil;
Als notlösung sehe ich es dann alle Punkte die ich gezeichnet habe wieder wegzu machen. Einzeln. Aber danke. |
Re: Schnelles Löschen von allen Pixeln im Image
Das wird noch viel langsamer, vor allem wenn du mit Canvas.Pixels arbeitest. Der Weg über Rectangle ist imho bei der Verwendung von Canvas die schnellste Möglichkeit ein Bild zu leeren. Eventuell kann man aber auch was mit Scanline und FillChar drehen...
|
Re: Schnelles Löschen von allen Pixeln im Image
Ersatell ein leeres Bitmap und kopioer das mit BitBlt auf den Canvas. Eventuell ist das schneller. Was hast du denn überhaupt vor?
|
Re: Schnelles Löschen von allen Pixeln im Image
Hi,
ich muss das Bitmap immer wieder in einer Schleife zwischen dem Zeichnen löschen. Das mit dem Bitmap laden ist mir zu umständlich, ich brauchte so einen Befehl: bitmap.canvas.allpixels:=clwhite; |
Re: Schnelles Löschen von allen Pixeln im Image
Zitat:
Um in einen akzeptablen Geschwindigkeit auf einen Image zu malen benötigst Du sowieso eine TBitmap. Zuerst führst Du alle Zeichenoperationen auf dieser Bitmap aus. Das Löschen aller Pixel kannst Du wie von dizzy vorgeschlagen mit Rectangle erledigen. Anschließend kopierst Du die Canvas dieser Bitmap mit BitBlt ins Image. Das ist die schnellste Methode, die ich im GDI Kontext kenne. |
Re: Schnelles Löschen von allen Pixeln im Image
Hi ich bin ja auh ein bischen blöd. Auf Tbitmap hätte ich auch selbst kommen können. Danke für den hinweis. Dann geht alles klar.
Danke für alles. Tschau |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 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