2017-07-30 73 views
-1

我尝试每隔30秒将临时目录保存为临时目录,但每个目录只保存一次,给我一个错误 这是我的错误我尝试每隔30秒将临时目录保存为临时目录,但每次只能保存一次

A generic error occurred in GDI+. 

堆栈跟踪

at System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams) 

在System.Drawing.Image.Save(字符串文件名,格式的imageformat) 在WindowsApplication1.Form1.savetempfoto()在Form1中.vb:line 372

而行的错误是

PB1.Save(path, System.Drawing.Imaging.ImageFormat.Bmp) 

这是我的代码

Public Function temdirx() 
    My.Computer.FileSystem.CreateDirectory(tempdir) 
End Function 


Public Function timesavetemp() 
    Timer2.Start() 

End Function 

Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick 
    timetosavetemp = timetosavetemp + 1 

    If timetosavetemp >= 30 Then 
     savetempfoto() 
     timetosavetemp = 0 

    End If 
End Sub 
Public Function savetempfoto() 
    Dim PB1 As New Bitmap(PictureBox1.Image) 
    'Dim frame As Long 'individual frames 
    'Dim strings As String 

    'strings = frame 
    'Dim path As String = String.Format("C:\Mediamemebuilderpro\MDAL1Image{0}.jpg", nametosave) 
    'PB1.Save(path, System.Drawing.Imaging.ImageFormat.Bmp) 
    'PB1.Save("C:\Mediamemebuilderpro\MDAL1Image" & strings & ".jpg", System.Drawing.Imaging.ImageFormat.Bmp) 
    'frame += 1 
    Dim filename As String = "MDAL1Image" 'Change as needed 
    Dim path As String = String.Format("C:\Mediamemebuilderpro\{0}{1}.jpg", filename, nametosave) 
    PB1.Save(path, System.Drawing.Imaging.ImageFormat.Bmp) 
    timetosavetemp = 0 
End Function 
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 
    For Each file As String In IO.Directory.GetFiles("C:\Mediamemebuilderpro", "*.*") 

     ListBox1.Items.Add(file) 

    Next 
End Sub 

Private Sub Button20_Click(sender As Object, e As EventArgs) Handles Button20.Click 
    ListBox1.Items.Clear() 

End Sub 
+0

显示如何创建计时器。将时间设置为30分钟。至于错误。请检查以确保保存位置存在,并且您有权修改它。在标题中你也有30秒的时间,但在问题的主体中有30分钟。您需要澄清 – Nkosi

+1

Save()方法会对该文件进行锁定。所以它会第二次失败,你不能覆盖一个锁定的文件。漂亮的基本错误,你忘了处理位图。使用'Using'语句。 –

+0

@HansPassant您好坦克的重播可以请给我一个例子如何做? – ines

回答

1

有任何原因,你为什么会得到这个错误。通常

Saving image: A generic error occurred in GDI+. (vb.net)

次它的东西很简单:从这里开始。

+0

嗯,我刚刚解决了错误,但我无法每隔30分钟自动将照片保存为tempdir,每次都使用不同的名称,所以我想构建一种撤消更改,因此我需要保存相同的照片每30分钟用一个不同的名字。 – ines

+0

只需使用计时器控件,将其设置为每隔30分钟激活一次,即可保存照片。当用户执行保存功能时,您可以重置为时钟。 –

+0

坦克的重播我已经准备好了,但它只能保存一次,而且它会尝试保存第二个给我的gdi错误 – ines