Я пытаюсь уменьшить размер файла изображения, сначала все работает нормально
, но после уменьшения 14-15 файла выдается ошибка кода "out of memory"
при pic.DrawImage(img, 0, 0, width, height)
и jpeg.Save(exePath & "\" & dir_file & re12.Name, Imaging.ImageFormat.Jpeg)
я уже добавил tp.Dispose()
& pic.Dispose()
, но это не работает
это мой код
Private Sub imgreduce_DoWork(sender As Object, e As DoWorkEventArgs) Handles imgreduce.DoWork
Dim reduce12 = New System.IO.DirectoryInfo(exePath & "\" & dir_file).GetFiles("file_*.jpeg").OrderBy(Function(x) x.Name)
For Each re12 As System.IO.FileInfo In reduce12
Dim jpeg As Image = Image.FromFile(exePath & "\" & dir_file & re12.Name)
Dim tp As Bitmap = reduce(jpeg, jpeg.Width, jpeg.Height)
jpeg.Dispose()
jpeg = tp
jpeg.Save(exePath & "\" & dir_file & re12.Name, Imaging.ImageFormat.Jpeg)
Next
End Sub
Private Function reduce(ByVal img As Image, ByVal width As Integer, ByVal height As Integer) As Image
Dim imaf As New Bitmap(width, height)
Dim pic As Graphics = Graphics.FromImage(imaf)
pic.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
pic.DrawImage(img, 0, 0, width, height)
Return imaf
End Function