图片存取和显示!
图片存取和显示!在线等!
已实现把图片存进数据库!存取的是路径!
求把图片显示出来的方法!
还有一种谁能用流的方法实现图片的存取和显示!
结果出来立马结贴!
------解决方案--------------------
'Your file path from database.
Dim filePath As String = "C:\test.jpg "
'Create a stream to transmit image data.
Dim imgDataStream As System.IO.Stream = New System.IO.FileStream(filePath, IO.FileMode.Open, IO.FileAccess.Read)
'Load the image from the stream
Dim img As Image = Image.FromStream(imgDataStream)
'Set the image object to you control(such as PictureBox.Image, Form.BackgroundImage)
Me.BackgroundImage = img
---------------------
MyBlog: http://blog.sina.com.cn/jbwang
------解决方案--------------------
显示图片:
Private Sub ShowImage(ByVal s As String)
On Error GoTo errlab
Dim cn As SqlClient.SqlConnection
'Dim constring As String
'constring = "workstation id=LILIN;packet size=4096;user id=sa;data source=lilin;persist security info=False;initial catalog=field_control "
cn = New SqlClient.SqlConnection(SqlConString)
cn.Open()
Dim str As String = "SELECT tupian FROM shengchanxinxibiao WHERE shengchanbianhao= ' " & s & " ' "
Dim cmd As New SqlClient.SqlCommand(str, cn)
Dim b() As Byte
b = cmd.ExecuteScalar()
If (b.Length > 0) Then
Dim stream As New MemoryStream(b, True)
stream.Write(b, 0, b.Length)
DrawToScale(New Bitmap(stream))
stream.Close()
End If
cn.Close()
Exit Sub
errlab:
PictureBox1.Image = Nothing
Resume Next
End Sub
字段图片是 二进制类型的
写入图片:
Private buffer() As Byte
Private str As String
Dim st As New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read)
'Dim s As String = TextBox1.Text
Dim mbr As BinaryReader = New BinaryReader(st)
ReDim buffer(st.Length)
mbr.Read(buffer, 0, CInt(st.Length))
st.Close()
Public Function InsertImage(ByRef buffer, ByVal str)
'Dim constring As String
'constring = "workstation id=LILIN;packet size=4096;user id=sa;data source=lilin;persist security info=False;initial catalog=field_control "
cn = New SqlClient.SqlConnection(SqlConString)
cn.Open()
Dim cmd As New SqlClient.SqlCommand( "sp_InsertPhoto ", cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add( "@id ", SqlDbType.VarChar).Value = str
cmd.Parameters.Add( "@image ", SqlDbType.Image).Value = buffer
cmd.ExecuteNonQuery()
'MsgBox( "Image inserted ")
cn.Close()
End Function
已实现把图片存进数据库!存取的是路径!
求把图片显示出来的方法!
还有一种谁能用流的方法实现图片的存取和显示!
结果出来立马结贴!
------解决方案--------------------
'Your file path from database.
Dim filePath As String = "C:\test.jpg "
'Create a stream to transmit image data.
Dim imgDataStream As System.IO.Stream = New System.IO.FileStream(filePath, IO.FileMode.Open, IO.FileAccess.Read)
'Load the image from the stream
Dim img As Image = Image.FromStream(imgDataStream)
'Set the image object to you control(such as PictureBox.Image, Form.BackgroundImage)
Me.BackgroundImage = img
---------------------
MyBlog: http://blog.sina.com.cn/jbwang
------解决方案--------------------
显示图片:
Private Sub ShowImage(ByVal s As String)
On Error GoTo errlab
Dim cn As SqlClient.SqlConnection
'Dim constring As String
'constring = "workstation id=LILIN;packet size=4096;user id=sa;data source=lilin;persist security info=False;initial catalog=field_control "
cn = New SqlClient.SqlConnection(SqlConString)
cn.Open()
Dim str As String = "SELECT tupian FROM shengchanxinxibiao WHERE shengchanbianhao= ' " & s & " ' "
Dim cmd As New SqlClient.SqlCommand(str, cn)
Dim b() As Byte
b = cmd.ExecuteScalar()
If (b.Length > 0) Then
Dim stream As New MemoryStream(b, True)
stream.Write(b, 0, b.Length)
DrawToScale(New Bitmap(stream))
stream.Close()
End If
cn.Close()
Exit Sub
errlab:
PictureBox1.Image = Nothing
Resume Next
End Sub
字段图片是 二进制类型的
写入图片:
Private buffer() As Byte
Private str As String
Dim st As New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read)
'Dim s As String = TextBox1.Text
Dim mbr As BinaryReader = New BinaryReader(st)
ReDim buffer(st.Length)
mbr.Read(buffer, 0, CInt(st.Length))
st.Close()
Public Function InsertImage(ByRef buffer, ByVal str)
'Dim constring As String
'constring = "workstation id=LILIN;packet size=4096;user id=sa;data source=lilin;persist security info=False;initial catalog=field_control "
cn = New SqlClient.SqlConnection(SqlConString)
cn.Open()
Dim cmd As New SqlClient.SqlCommand( "sp_InsertPhoto ", cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add( "@id ", SqlDbType.VarChar).Value = str
cmd.Parameters.Add( "@image ", SqlDbType.Image).Value = buffer
cmd.ExecuteNonQuery()
'MsgBox( "Image inserted ")
cn.Close()
End Function