2017-07-30 11 views
-1

30秒ごとに写真を一時的なdirに保存しようとしましたが、私にエラーを与える これは30秒ごとに写真を別の名前の一時的なdirに保存しようとしましたが、一度だけ保存します

A generic error occurred in GDI+. 

スタックトレース私の誤りである

をForm1でWindowsApplication1.Form1.savetempfoto()でSystem.Drawing.Image.Save(文字列のファイル名、ImageFormat形式) で
at System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams) 

.vb:行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()メソッドはファイルにロックを設定します。したがって、2回目に失敗します。ロックされたファイルを上書きすることはできません。かなり基本的なバグ、あなたはビットマップを処分するのを忘れました。 'Using'ステートメントを使用してください。 –

+0

@HansPassantリプレイのためのHiタンクは、あなたに私に例を教えてもらえますか? – ines

答えて

1

です。ここからスタート:

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

しばしば、それは単純なものです。

+0

私はちょうどエラーを解決しましたが、毎回違う名前のtempdirに30分ごとに写真を保存することができません。そのため、同じ写真を保存する必要があるため、毎回違う名前で30分ごとに – ines

+0

ちょうど30分ごとにアクティブにするように設定、タイマーコントロールを使用して、写真を保存します。ユーザーが保存機能を実行すると、クロックにリセットすることができます。 –

+0

リプレイのためのタンク私はすべてこれを試してみましたが、一度だけ保存して、それを2回保存しようとすると、gdiエラーが発生します – ines

関連する問題