I Am trying to store image in database varbinary Column using vb.net and wcf Servics
Using code
Private Function SaveImage() As Byte()
Dim arrayImage() As Byte = Nothing
If (pic_meetPicture.Image Is Nothing) Then
arrayImage = Nothing
Else
Try
Dim ms As New MemoryStream
Me.pic_meetPicture.Image.Save(ms, Me.pic_meetPicture.Image.RawFormat)
arrayImage = ms.GetBuffer
ms.Close()
arrayImage = Process.Compressor.UICompressor.Compress(arrayImage)
Catch ex As Exception
End Try
End If
Return arrayImage
End Function
Public Shared Function Compress(ByVal buffer As Byte()) As Byte()
Dim ms As MemoryStream = New MemoryStream()
Dim zip As GZipStream = New GZipStream(ms, CompressionMode.Compress, True)
zip.Write(buffer, 0, buffer.Length)
zip.Close()
ms.Position = 0
Dim outStream As MemoryStream = New MemoryStream()
Dim compressed() As Byte = New Byte(ms.Length) {}
ms.Read(compressed, 0, compressed.Length)
Dim gzBuffer() As Byte = New Byte(compressed.Length + 4) {}
System.Buffer.BlockCopy(compressed, 0, gzBuffer, 4, compressed.Length)
System.Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzBuffer, 0, 4)
Return gzBuffer
End Function
for display image
Private Sub SetImage(ByVal array As ArrayList)
Dim arrayImage() As Byte = array(0).Image
arrayImage = CType(Process.Compressor.UICompressor.Decompress(arrayImage), Byte())
If arrayImage IsNot Nothing Then
Dim ms As New MemoryStream(arrayImage)
pic_meetPicture.Image = Image.FromStream(ms)
pic_meetPicture.SizeMode = PictureBoxSizeMode.StretchImage
End If
End Sub
Public Shared Function Decompress(ByVal gzBuffer As Byte()) As Byte()
Dim ms As MemoryStream = New MemoryStream()
Dim msgLength As Integer = BitConverter.ToInt32(gzBuffer, 0)
ms.Write(gzBuffer, 4, gzBuffer.Length - 4)
Dim buffer() As Byte = New Byte(msgLength) {}
ms.Position = 0
Dim zip As GZipStream = New GZipStream(ms, CompressionMode.Decompress)
zip.Read(buffer, 0, buffer.Length)
Return buffer
End Function
But when fetch image from databse then getting error 'parameter in valid'
please Help
thanks