当我执行我的程序时,我在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
答案 0 :(得分:0)
GDI抱怨你正在使用的文件名。
问题在于:testOutput = "Z:\" & naam & " " & Now.ToString("HH/mm/ss") & ".jpg"
您在路径中生成带斜杠的文件名。如果那些是目录名(分别是每小时,分钟和秒的目录)那么那些目录需要ex,这将无法工作,因为GDI不会为您创建沿路径丢失的目录。如果斜杠本身就是文件名本身,那么它也不会起作用,因为斜杠不是有效的文件名字符。
将斜杠更改为下划线或连字符或文件名中允许的其他字符:
testOutput = "Z:\" & naam & " " & Now.ToString("HH_mm_ss") & ".jpg"