LabVIEWForum.de
.net Picturebox-Overlay? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: ActiveX & .Net (/Forum-ActiveX-Net)
+---- Thema: .net Picturebox-Overlay? (/Thread-net-Picturebox-Overlay)



.net Picturebox-Overlay? - Rauth - 07.05.2013 10:42

Moin,

vielleicht könnt ihr mir bei meinem Problem weiterhelfen...

Momentan benutze ich eine .net Picturebox um einen Webcam-Livestream anzuzeigen.
Darüber sollen Messpunkte angezeigt werden, die werden in einer transparenten Grafik geplottet.

Die transparente Grafik als Overlay hat bei normalem Bild-Hintergrund problemlos funktioniert, aber die Picturebox lässt sich in der Objektreihenfolge nicht verschieben.
Entsprechend ist das Livebild immer im Vordergrund, die Messpunkt-Plots liegen immer dahinter und sind entsprechend nicht zu sehen.

Gibts eine Möglichkeit das zu umgehen?


RE: .net Picturebox-Overlay? - Kasi - 07.05.2013 11:38

Interessantes Problem, leider finde auch ich keinen Weg, die Picturebox in den Hintergrund zu drängen.

Folgende Ideen, die mir spontan einfallen, wenn du bei der PictureBox bleiben magst:
Methode A) Bild aus Picturebox speichern (das geht wohl nur als bmp oder jpg), mit transparentem Bild überlagern (sollte ungefähr so gehen, hab ich aber noch nie gemacht), und das überlagerte Bild wieder in die PictureBox laden (das sollte dem ganzen aber etwas "choppiness" verleihen, kann mir nicht vorstellen, dass die ganze Aktion performancemäßig unbemerkt bleibt)

Methode B) Zweite Picturebox anlegen, beide überlagern, in die vordere den Graph, in die hintere den Livestream laden

Methode C) Eine PictureBox mit BackgroundImage für den Livestream, Image für den Graph

Methode D) Du packst die Picture Box in eine Seite einer Tab-Control, den zu überlagernden Graph in die zweite Seite. Dann wechselst du programmatisch ständig die Seite. Das sieht nicht nur dämlich aus, sondern macht auf Dauer sicherlich auch Kopfschmerzen. Eine klare Win-Win Situation. Wink


RE: .net Picturebox-Overlay? - Rauth - 08.05.2013 10:14

(07.05.2013 11:38 )Kasi schrieb:  Methode B) Zweite Picturebox anlegen, beide überlagern, in die vordere den Graph, in die hintere den Livestream laden
Hmm...das klingt für mich am vielversprechendsten.

Die Frage stellt sich mir nur, wie bekommt man die Grafik in die Picturebox?
Habe keine Ahnung von den Dingern, Google spuckt nix aus, und die Webcam-Einbindung via Picturebox habe ich als Fertiglösung gefunden.


RE: .net Picturebox-Overlay? - Kasi - 08.05.2013 12:10

Diese Methode hat leider einen Haken, der mir erst heute aufgefallen ist, nämlich dass man mit einer Picture Box zwar eigentlich eine Farbe Transparent schalten kann, in Labview jedoch trotzdem der Teil hinter der Picturebox verdeckt bleibt. Also kann der Graph hier nur flächig ohne Transparenz überlagert werden.

PictureBox-Images (aus Bitmaps) kann man wie folgt generieren:
[attachment=44583]

Methode C wird unter dem Gesichtspunkt ein ähnliches Resultat liefern, höchstens dass du da eine Farbe des Graphs erfolgreich transparent geschaltet bekommst (wie man das macht, erfährst du beispeilsweise hier)

Insofern bliebe für eine "vernünftige", d.h. "mehrfarbige" Transparenz wohl nur Methode A. Das Livecam-Image aus der Picturebox kannst du mit einem Method-Knoten für das Image-Objekt mit "Save(filename)" extrahieren.