Invio immaggini della webcam tramite socket ad un altro PC

giovedì 06 settembre 2007 - 22.12

rimmer Profilo | Newbie

Salve a tutti dovrei inviare delle immaggini prese dalla webcam tramite socket ,ho preso l'esempio che ci sta nel sito ma non riesco a reindirizzare le immaggini sul socket per inviarli.
Linguaggio usato VB.NET 2005
Vi ringrazio anticipatamente.

Brainkiller Profilo | Guru

>Salve a tutti dovrei inviare delle immaggini prese dalla webcam
>tramite socket ,ho preso l'esempio che ci sta nel sito ma non
>riesco a reindirizzare le immaggini sul socket per inviarli.
>Linguaggio usato VB.NET 2005

Ciao è un po' troppo generica la tua richiesta.
Potresti articolarla un po' con qualche dettaglio ? Non riesci che vuol dire ? Hai scritto tu sia l'applicazione client che server ?
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

rimmer Profilo | Newbie

Si scusami hai ragione ,
non mi è stato possibile essere più chiaro perchè sinceramente neanche io sono risucito a venirne acapo ,
in quanto il clinet ricevi dati ma non capisco perchè non visualizza nulla.
Se per te non è un problema ti posso mandare il sorgente.
Grazie ancora

Xnetus Profilo | Junior Member

Ho appena pubblicato un Post riguardante la serializzazione di un Immagine:

http://blogs.dotnethell.it/Xnetus/Serializzare-un-Immagine-–-VB.net__11746.aspx

In pratica dovresti, nel tuo programma, serializzare l'immagine e inviare il file contente il formato binario dell'immagine e poi deserializzarlo. In questo modo dovresti inviare la tua immagine frame per volta.

_______________________________

http://blogs.dotnethell.it/Xnetus/

rimmer Profilo | Newbie

Grazie infinite sei stato gentilissimo adesso gli dò un occhiata ,ci ho lavorato ancora al mio progetto e adesso mi da il seguente errore :

riferimento ad un oggetto non impostato su un'istanza di oggetto
Di seguito il codice relativo all'invio del server delle immaggini al client se ritieni opportuno e se non creo troppo disturbo ti posso mandare anche il codice completo di Server e client.


Private Sub video_out_in()
Dim temp As String = String.Empty
Dim byteinv As Integer

Dim data As IDataObject
Dim bmap As Image
Dim ms As New IO.MemoryStream()

'---copy the image to the clipboard---
' SendMessage(hWnd, WM_CAP_EDIT_COPY, 0, 0)

'---retrieve the image from clipboard and convert it
' to the bitmap format
Do
data = Clipboard.GetDataObject()
' If data Is Nothing Then Exit Sub
If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
'---convert the data into a Bitmap---
bmap = CType(data.GetData(GetType( _
System.Drawing.Bitmap)), Image)
'---save the Bitmap into a memory stream---
bmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp)
'---write the Bitmap from stream into a byte array---
Image = ms.GetBuffer
Dim i As Integer = handler.Send(Image)
End If




' Dim msg As Byte() = Encoding.ASCII.GetBytes(temp)
byteinv = handler.Send(Image)
MessageBox.Show("Inviati " + byteinv.ToString)
Loop
End Sub


Ho appena letto il tuo link ,correggimi se sbaglio non risulta più lento il sistema visto che devo leggere e scrivere su file?

Xnetus Profilo | Junior Member

Invece di scrivere su file, prendi il formato binario e invialo, in questo modo la procedura dovrebbe essere anche + veloce.

Comunque se vuoi puoi inviarmi il codice.







rimmer Profilo | Newbie

Ti ho inviato il progetto a cui sto lavorando ,vi è sia il clinet che il server.
Grazie ancora

Xnetus Profilo | Junior Member

Per prima cosa nella connessione dovresti specificare la porta di connessione del tipo:

' NumPorta va solitamente da 1000 a 12000
Dim SendImg as New UdpClient(NumPorta)

Dopo la connessione devi spedire il formato binario dell'immagine:

' ImgInByte = formato binario dell'immagine
' LunghezzaByte = lunghezza dei byte
SendImg.Send(ImgInByte, LunghezzaByte)

Ovviamente la velocità di comunicazione dipende dalla qualità dell'immagine.




http://blogs.dotnethell.it/Xnetus/

TOPOAMORE Profilo | Expert

Ciao volevo segnalarti che c'e' un errore nella procedura di deserializzazione in quanto il file non va ricreato ma solo aperto. Oltretutto il nome del file va dichiarato prima altrimenti non ti crea il fileStream(nella serializzazione) o non riesce a trovarti il file (nella deserializzazione).
Ciaoooo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5