buongiorno a tutti
devo salvare delle immagini in un campo 'image' di una tabella su sqlserver
so che il valore da passare è byte
quindi dall' immagine dovrei estrapolare i byte
utilizzo questa funzione per fare ciò
Public Shared Function Crea_bytes(ByVal imageSource As Stream) As Byte()
Dim buffer As Byte() = Nothing
If (imageSource IsNot Nothing) Then
Dim SR As StreamReader = New StreamReader(imageSource)
Using br As BinaryReader = New BinaryReader(SR.BaseStream)
buffer = br.ReadBytes(CInt(SR.BaseStream.Length))
End Using
End If
Return buffer
End Function
e la richiamo così
Dim byteX As Byte()
Dim bitmap As BitmapImage
bitmap = Bacheca1.sfondo.Source
byteX = Share.Crea_bytes(bitmap.StreamSource)
alla partenza bitmap.StreamSource sembra piena
perchè facendo debug
mi segnala questo valore "_buffer = {Length=266193}"
quello che ritorna invece è un buffer con Lenght=0
quindi vuoto
preciso che questa funzione la utilizzo già per un altra applicazione
dove però lo stream lo ricavo dalla fileDialog quando si sceglie l'immagine
sapreste svelare questo mistero!
Programmatore per passione!
Mi rispondo da solo
nella Funzione non imposto il punto di partenza
cioè manca
SR.BaseStream.Position=0
credo perchè in questo caso la posizione attuale viene passata come ultimo byte
mentre evidentemente quando richiamata da OpenFileDialog la posizione iniziale passata è 0
grazie lo stesso