保存图片,而我从网站使用VB.NET刮
问题描述:
当我在我的视觉基本上使用它时,我发现在YouTube上的代码,并调试它,找到图片,但是当我想要保存它们时,软件给我这个信息here。保存图片,而我从网站使用VB.NET刮
Private Sub btnSaveImages_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
btnSaveImages.Click
Dim dir_name As String = txtDirectory.Text
If Not dir_name.EndsWith("\") Then dir_name &= "\"
For Each pic As PictureBox In flpPictures.Controls
Dim bm As Bitmap = pic.Image
Dim filename As String = pic.Tag
filename = _
filename.Substring(filename.LastIndexOf("/") + _
1)
Dim ext As String = _
filename.Substring(filename.LastIndexOf("."))
Dim full_name As String = dir_name & filename
Select Case ext
Case ".bmp"
bm.Save(full_name, Imaging.ImageFormat.Bmp)
Case ".gif"
bm.Save(full_name, Imaging.ImageFormat.Gif)
Case ".jpg", "jpeg"
bm.Save(full_name, Imaging.ImageFormat.Jpeg)
Case ".png"
bm.Save(full_name, Imaging.ImageFormat.Png)
Case ".tiff"
bm.Save(full_name, Imaging.ImageFormat.Tiff)
Case Else
MessageBox.Show(_
"Unknown file type " & ext & _
" in file " & filename, _
"Unknown File Type", _
MessageBoxButtons.OK, _
MessageBoxIcon.Error)
End Select
Next pic
Beep()
End Sub
答
问题是LastIndexOf没有找到。在你的文件名。然后将-1传递给SubString,它引发你看到的错误。
而不是写在文件解析自己使用System.Io.Path的方法,如
System.IO.Path.GetDirectoryName(filename)
System.IO.Path.GetFileName(filename)
System.IO.Path.GetFileNameWithoutExtension(filename)
Private Sub btnSaveImages_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
btnSaveImages.Click
For Each pic As PictureBox In flpPictures.Controls
Dim bm As Bitmap = pic.Image
Dim path As String = pic.Tag
Dim filename = IO.Path.GetFileName(path)
Dim ext = IO.Path.GetExtension(path)
Dim full_name = IO.Path.Combine(txtDirectory.txt, filename)
....
+0
我应该在哪里添加代码?一开始? –
+0
我已经添加了一个示例。 – FloatingKiwi
它告诉你,你传递的“Substring”的值小于0。阅读“LastIndexOf”的文档,看看它可能返回一个小于0的数字的条件。然后,你必须调试你的程序,看看它为什么返回该值。 –
我不明白你的意思买你的意见,你可以解释更多请 –