我想知道如何使用浏览文件对话框在Visual Basic中保存我从计算机中选择的图片。
我使用以下代码从我的电脑中选择图像:
Private Sub btnBuscar_Click(sender As Object, e As EventArgs) Handles btnBuscar.Click
With OpenFileDialog1
.CheckFileExists = True
.ShowReadOnly = False
.Filter = "All Files |*.*| Bitmap Files (*)|*.bmp;*.gif;*.jpg"
.FilterIndex = 2
If .ShowDialog = DialogResult.OK Then
PictureBox1.Image = Image.FromFile(.FileName)
End If
End With
End Sub
从我的表单中,我正在调用另一个类来创建对象:
gestor.agregarMission(txtNombre.Text, txtTrip.Text, dtInicio.Value, numDuracionDia.Text, programa, txtDatos.Text, txtResul.Text, picture, txtNave.Text, cuerpo)
我需要用一些参数构建一个对象Mission,包括一个Image,这是构造函数:
Public Sub agregarMission(pnombre As String, ptripulantes As String, pfechaLanz As Date, pduracion As Double, pprograma As String, pdescripcion As String, presultado As String, **pinsignia As Image**, pnave As String, pcuerpo As String)
Dim objMision As New Mision(pnombre, ptripulantes, pfechaLanz, pduracion, pprograma, pdescripcion, presultado, pinsignia, pnave, pcuerpo)
multiMision.registrarMission(objMision)
End Sub
我看不到的是pictureBox.Image或wahetever的等价物,所以我可以将它发送给构造函数。
在我的SQL表中,字段类型是Image,我被告知Image类型实际上是一个数组,所以我不知道以后是否可以将它转换为String并稍后将其恢复为原始类型。
如果有人能给我一个提示,我将非常感激!
答案 0 :(得分:1)
如果将图像文件名作为字符串传递到agregarMission
,则可以使用它来读取图像,将其转换为字节并插入。除非您将其用于其他目的,否则不需要PictureBox。
Dim fiImage As FileInfo = New FileInfo(imageFilename)
Dim fs As FileStream = New FileStream(imageFilename, FileMode.Open, FileAccess.Read, FileShare.Read)
Dim imgByteArray = New Byte((Convert.ToInt32(fiImage.Length)) - 1) {}
fs.Read(imgByteArray, 0, Convert.ToInt32(fiImage.Length))
fs.Close
将imgByteArray
插入表格字段