![]() |
Anzeige:
|
|
|||||||
| Visual Basic, Visual Basic.NET Alles zum Thema - Visual Basic und Visual Basic.NET
Fragen zu VBA bitte in das Forum Office-Anwendungen posten! |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Gast
Beiträge: n/a
|
Eine USB Kamera liefert ein Live-Bild. Nun soll ein Bild aus dem Stream rausgegriffen
und gespeichert werden. Das soll alle 10 Sekunden geschehen. In folgender Funktion fehlt die Methode, wie ich der Variablen bmp das Bild übergeben muss. Die darauffolgende Zeile habe ich bereits getestet(Das Speichern selbst würde funktionieren, die Übergabe des Bildes funktioniert eben nicht). Private Sub Speichern() Me.Show() Dim myCam As New iCam Dim i As Integer = 0 Dim dateinamenszusatz As String Dim bmp As Bitmap dateinamenszusatz = i.ToString bmp = '**********diese Zeile ist gemeint********** bmp.Save("C:\MiniCam_Bilder\Bild" + dateinamenszusatz + ".bmp") i = i + 1 Me.Close() End Sub Hier folgt nun die Vorgänger-Version des Programms mit allen relevanten Codezeilen. Private myCam As iCam Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.picOutput.SizeMode = PictureBoxSizeMode.StretchImage myCam = New iCam myCam.initCam(Me.picOutput.Handle.ToInt32)'Livebild wird übertragen End Sub Private Sub cmdViewStill_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdViewStill.Click If myCam.iRunning Then Dim a As FrmImage a = New FrmImage a.picImage.Image = myCam.copyFrame(Me.picOutput, New RectangleF(0, 0, _ Me.picOutput.Width, Me.picOutput.Height)) Me.Show() Else MessageBox.Show("Camera Is Not Running!") End If End Sub Wenn ich das Bild speichern möchte: Private Sub Speichern() Me.Show() Dim myCam As New iCam Dim i As Integer = 0 Dim dateinamenszusatz As String Dim bmp As Bitmap dateinamenszusatz = i.ToString bmp = CType(picImage.Image, Bitmap) bmp.Save("C:\MiniCam_Bilder\Bild" + dateinamenszusatz + ".bmp") i = i + 1 Me.Close() End Sub funktioniert das auch, aber nur solange ich einen Button klicke, welcher danach die Funktion Speichern() aufruft. Wenn ich den Button per Software klicken lasse, läd das Programm nicht mehr das Bild in die PictureBox, sondern den dahinterliegenden Ausschnitt des Desktops. In die Datei wird also ein Teil meines Bildschirms gespeichert. Wenn ich statt des Buttons einfach nur eine Funktion programmiere welche ohne den Button anfängt Bilder zu speichern entsteht wieder das Resultat mit dem Bildschirmhintergrund. Ich versuche nun das Bild direkt in ein Bitmap zu speichern, ohne es zuvor in die PictureBox zu laden. So könnte ich vermeiden, dass in der PictureBox der Bildschirmhintergrund landet. Also: Wenn mir jemand einen Code zeigen kann welcher die 2 Zeilen: a.picImage.Image = myCam.copyFrame(Me.picOutput, New RectangleF(0, 0, _ Me.picOutput.Width, Me.picOutput.Height)) ersetzt durch Zeilen welche direkt das Bild in ein Bitmap speichert wie z.B. Dim bmp as Bitmap bmp = myCam.copyFrame(Me.picOutput, New RectangleF(0, 0, _ 'diese 2 Zeilen hier funktionieren natürlich nicht Me.picOutput.Width, Me.picOutput.Height)) 'sonst wäre das Problem gelöst wäre ich sehr dankbar. Ich verwende WinXP VisualBasic Express |
|
|
|
|
#2 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 10.08.2007
Beiträge: 1
|
Der Beitrag ist nicht mehr aktuell und kann gelöscht werden.
|
|
|
|
|
|
#3 (Direktlink) |
|
Premium Mitglied
![]() Registriert seit: 05.11.2003
Beiträge: 6.545
|
Wir löschen keine Beiträge nur weil sie nicht mehr aktuell sind, sonst wäre ja das Forum leer.
MfG
__________________
Montag früh, 8:00 Uhr und die Woche nimmt einfach kein Ende |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|