Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Eine Bitmap maskieren? (https://www.delphipraxis.net/149025-eine-bitmap-maskieren.html)

DelphiCreak 12. Mär 2010 16:18


Eine Bitmap maskieren?
 
Guten Nachmittag liebe Dp.

Ich will im Moment eine Anzeige für den Down-Traffic aus dem Internet von mir bauen, in so einer Linie (also einem Verlauf). Die Grundversion funktioniert schon, mein Problem jetzt: Ich fänds cool, wenn der Verlauf ausfaden würde, also der Wert der Gerade erst gekommen ist in Hellgrün, die letzten Angezeigten werte in Schwarz. Ein Beispielprojekt mit meiner aktuellen Compo liegt bei, hoffe von euch weiß da jemand was.

Mfg, DelphiCreak

Alter Mann 12. Mär 2010 18:55

Re: Eine Bitmap maskieren?
 
Eine *.Exe?

Bist du Jeck? Kein Mensch würde eine Exe laden um zu sehen was du meinst,
ohne Code geht garnichts!!! Schon mal was von Viren, Trojanern etc. gehört?

Oder würdest du eine ausführbare Datei ausführen wenn du nicht weisst ob die Quelle
vertrauenswürdig ist?

Bei aller Liebe.

DelphiCreak 12. Mär 2010 19:17

Re: Eine Bitmap maskieren?
 
Liste der Anhänge anzeigen (Anzahl: 1)
'Tschuldigung, nicht drüber nachgedacht dass das Misstrauen hervorrufen könnte.
Anbei nun der Source der Komponente samt Beispiel-Projekt-Source, zum selber zusammenbauen ;)

Mfg

turboPASCAL 14. Mär 2010 08:51

Re: Eine Bitmap maskieren?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Guck dir mal Delphi-Referenz durchsuchenscanline genauer an. Damit kann man viel machen.

DelphiCreak 16. Mär 2010 12:29

Re: Eine Bitmap maskieren?
 
Vielen dank turbo schonmal, das ist in etwa das was ich brauche - doch die Version buggt an einigen Stellen noch ein wenig (Rote Striche dabei). Habe jetzt die Kompo sowei, dasses bugfrei funktioniert (ohne scanline), doch das ist noch sehr rechenaufwendig. Gibt es nicht auch eine Möglichkeit, die Linie in eine Bitmap zu zeichnen, die Farbe der Linie durchsichtig zu machen, dann den Farbverlauf im Hintergrund zeichnen und ebendiese Bitmap darüber?

Mfg DelphiCreak

turboPASCAL 16. Mär 2010 15:07

Re: Eine Bitmap maskieren?
 
Ist das nicht Aufwendiger ? :stupid: ;)

DelphiCreak 16. Mär 2010 17:24

Re: Eine Bitmap maskieren?
 
Meiner Meinung nach nicht, da mann nur "normale", also einfarbige Linien zeichnen müsste, und der Farbverlauf nur ein mal in eine Bitmap gezeichnet werden müsste. Im Moment muss ja jeder Pixel bei jedem Aufruf der Paint-Methode neu berechnet werden, und so müsste nur der HIntergrund mittels Draw gezeichnet werden, dann die Linie auf die zweite BitMap, Transparent setzen und wiederum mittels Draw auf die Form übertragen. Oder lieg ich da falsch, wenn ich behaupte 2x Draw und 150x eine normale Linie ist einfacher als über etwa 250 Pixel, deren Farbe und Position jedesmal neu berechnet werden muss?
Mfg DelphiCreak

turboPASCAL 17. Mär 2010 02:53

Re: Eine Bitmap maskieren?
 
Entweder du musst die die Farbe des Bildes berechnen oder die Farbe der Linie.

Du kannst auch eine Farbverlaufs-Linie zeichnen indem du externe Komponenten
wie die Hier im Forum suchenGr32 oder die Hier im Forum suchenGDI Plus verwendest.

Blup 17. Mär 2010 09:26

Re: Eine Bitmap maskieren?
 
Zitat:

Zitat von DelphiCreak
Gibt es nicht auch eine Möglichkeit, die Linie in eine Bitmap zu zeichnen, die Farbe der Linie durchsichtig zu machen, dann den Farbverlauf im Hintergrund zeichnen und ebendiese Bitmap darüber?

Das ist möglich, du benötigst zwei gleich große Bitmaps (und gleiche Farbtiefe bitte).
Die eine enthält einen Farbverlauf von z.B. Grün nach Schwarz.
Die andere wird schwarz gefüllt und mit weißer Linie das Diagramm gezeichnet.
Zum Schluß wird mit CopyMode "cmMergeCopy" der Farbverlauf per "CopyRect" drüber kopiert.

DelphiCreak 20. Mär 2010 10:57

Re: Eine Bitmap maskieren?
 
Vielen Dank, CopyRect war was ich gesucht hab...
hätt ich auch selbst drauf kommen können ;)
wobei das mit cmMergeCopy nicht so funktioniert hat wie es sollte, ich hab jetzt cmSrcAnd genommen, was einwandfrei funktioniert. ist deutlich effizienter als meine Vorherige Version ;)

Danke an die DP,
Mfg, DelphiCreak


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 Uhr.

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