Visual Basic:保存文件时的通用GDI +错误

时间:2015-09-06 08:04:58

标签: vb.net gdi+

当我执行我的程序时,我在visual basic中创建。当我试图从图片框中保存图像时,我收到了GDI +错误。

如果我在PC上运行它,我创建程序(Windows 10),我没有任何问题。当我在2个不同的Windows 7 PC上运行它时,我收到了错误。 映射的网络驱动器是相同的(Z:\)和可写的。

以下是代码:

 Private Sub SaveImage(ByVal pathToSaveTo As String)

    Try
        Using bmp As New Bitmap(Picimage.Image)
            bmp.Save(pathToSaveTo, Drawing.Imaging.ImageFormat.Jpeg)
        End Using

    Catch ex As Exception
        MessageBox.Show("An error occurred:" & vbCrLf & vbCrLf & _
                        ex.Message, "Error Saving Image File", _
                        MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
    End Try

End Sub

开始操作的按钮

  Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim dt As String = My.Computer.FileSystem.SpecialDirectories.Desktop
    Dim testOutput As String
    testOutput = "Z:\" & naam & " " & Now.ToString("HH/mm/ss") & ".jpg"
    SaveImage(testOutput)
    nr.Focus()
End Sub

1 个答案:

答案 0 :(得分:0)

GDI抱怨你正在使用的文件名。

问题在于:testOutput = "Z:\" & naam & " " & Now.ToString("HH/mm/ss") & ".jpg"

您在路径中生成带斜杠的文件名。如果那些是目录名(分别是每小时,分钟和秒的目录)那么那些目录需要ex,这将无法工作,因为GDI不会为您创建沿路径丢失的目录。如果斜杠本身就是文件名本身,那么它也不会起作用,因为斜杠不是有效的文件名字符。

将斜杠更改为下划线或连字符或文件名中允许的其他字符:

testOutput = "Z:\" & naam & " " & Now.ToString("HH_mm_ss") & ".jpg"