Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: [vb.net] invio video

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    172

    [vb.net] invio video

    Chiedo di nuovo aiuto!!!

    Io ho un client e un sever.


    Nel server ho una picturebox e dovvrei mandare l'immagine al client ,l'immagine cambia ogni 100 millisecondi.


    Cosa mi consigliate di usare?

    Posso catturare tutti i pixel insimeme della picturebox e inviare in formato stringa?



    Graie per la risposta!

  2. #2
    Puoi salvare l'immagine con Image.Save e poi spedirla un byte alla volta, eventualmente anche comprimendola se non impiega troppo tempo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    172
    Grazie per la risposta!!!

    Ti chiedo questo,io per inviare la stringhe :

    Public Sub SendMessage(ByVal message As String)
    Try
    '---send a message to the server
    Dim ns As NetworkStream = client.GetStream
    Dim data As Byte() = _
    System.Text.Encoding.ASCII.GetBytes(message)
    '---send the text---
    ns.Write(data, 0, data.Length)
    ns.Flush()
    Catch ex As Exception
    'MsgBox(ex.ToString)
    End Try
    End Sub

    E per riceverle :
    Public Sub ReceiveMessage(ByVal ar As IAsyncResult)
    Try
    Dim bytesRead As Integer
    bytesRead = client.GetStream.EndRead(ar)
    If bytesRead < 1 Then
    Exit Sub
    Else
    Dim para() As Object = _
    {System.Text.Encoding.ASCII.GetString( _
    data, 0, bytesRead)}
    Me.Invoke(New delUpdateHistory( _
    AddressOf Me.UpdateHistory), para)
    End If
    client.GetStream.BeginRead( _
    data, 0, CInt(client.ReceiveBufferSize), _
    AddressOf ReceiveMessage, Nothing)
    Catch ex As Exception
    End Try
    End Sub

    come posso salvare l'immagine e poi spedirla? in una variabile?

    Ti chiedo perchè non sono un super programmatore sto imparando solo!!

    Grazie totem!

  4. #4
    Usa il tag Code per inserire un sorgente, possibilmente con indentazione.
    Prima prelevi l'immagine dalla PictureBox, poi la salvi in una posizione qualsiasi, ad esempio:
    codice:
    'Costruisce il percorso di una cartella temporanea nel main folder dell'applicazione
    'Puoi anche usare IO.Path.GetTempFolder per ottenere la cartella temporanea di sistema
    Dim Location As String = Application.StartupPath & "\Temp\immagine.jpg"
    'Salva lì l'immagine
    PictureBox1.Image.Save(Location)
    
    'Carica tutti i bytes dell'immagine
    Dim AllBytes() As Byte = IO.File.ReadAllBytes(Location)
    'E li spedisce
    Try
      Dim ns As NetworkStream = client.GetStream
      ns.Write(AllBytes, 0, AllBytes.Length)
      ns.Flush()
    Catch ex As Exception
      'MsgBox(ex.ToString)
    End Try

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    172
    Ok provo grazie totem!!

    Adesso ho più chiare le cose!

  6. #6
    Perché sprecare risorse salvando l'immagine su disco quando si può gestire tutto in memoria?
    codice:
    '...
    Try
      Dim ns As NetworkStream = client.GetStream()
      PictureBox1.Image.Save(ns,ImageFormat.Jpeg)
      ns.Flush()
    Catch ex As Exception
      MessageBox.Show(ex.ToString)
    End Try
    '...
    Per ricevere, invece
    codice:
    '...
    Try
      Dim ns As NetworkStream = client.GetStream()
      PictureBox1.Image = System.Drawing.Image.FromStream(ns)
    Catch ex As Exception
      MessageBox.Show(ex.ToString)
    End Try
    '...
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    172
    Ok sto provando tutte e due però mi ci vuole un pò di tempo grazie tante siete unici!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    172
    Cavolo sbaglio qualchecosa nel ricevere,riesco a spedire ma non ricevere.

    Come faccio a ricevere l'immagine e anche stringa? forse mi va in blocco per questo?

  9. #9
    Originariamente inviato da MItaly
    Perché sprecare risorse salvando l'immagine su disco quando si può gestire tutto in memoria?
    Hai ragione Sono abituato con l'overload del percorso.

    Ad ogni modo, è facile che le due cose si confondano: per questo è opportuno che tu inserisca dei codici di riconoscimento, ad esempio, in testa alla sequenza di bytes, in modo tale da sapere che quella che si sta ricevendo è un'immagine. Potresti anche costruire un thread a parte e fargli ricevere l'immagine un blocco alla volta, magari 4096 bytes alla volta preceduti da una sequenza precisa, mentre si ignorano i messaggi normali. Inoltre, devi fare in modo che, terminata la trasmissione e la ricezione dei dati, l'immagine venga salvata da qualche parte: altrimenti sarà impossibile visualizzarla. Sarebbe opportuno usare formati già abbastanza compressi, come il png.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    172
    ok grazie riprovo!!

    Grazie per la risposta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.