Memory vb.net-处理大量图像时内存不足

Memory vb.net-处理大量图像时内存不足,memory,Memory,我正在尝试检查一组图像(通常超过50个,每个大约3MB)的方向。 当我已经处理了一堆数据时,就会出现“内存不足”错误 所以我的问题是,如何分别检查每个图像以使用最少的内存 我对vb.net和编程真的很陌生,所以这是我能想出如何完成任务的唯一方法: Dim MyFiles As New ArrayList() Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.

我正在尝试检查一组图像(通常超过50个,每个大约3MB)的方向。 当我已经处理了一堆数据时,就会出现“内存不足”错误

所以我的问题是,如何分别检查每个图像以使用最少的内存

我对vb.net和编程真的很陌生,所以这是我能想出如何完成任务的唯一方法:

  Dim MyFiles As New ArrayList()

  Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    TextBox2.Clear()

    If CheckBox2.Checked = True Then

        TextBox2.Text = "Checking the orientation of the images ..." & vbNewLine & vbNewLine

        For i As Integer = 0 To MyFiles.Count - 1

            TextBox2.AppendText("Checking " & MyFiles(i) & vbNewLine)
            If Image.FromFile(MyFiles(i)).Width < Image.FromFile(MyFiles(i)).Height Then
                TextBox2.AppendText(vbNewLine & "There are images with portrait orientation. Splitting aborted!" & vbNewLine)
                Return
            End If

        Next

        TextBox2.AppendText(vbNewLine & "All images are with landscape orientation." & vbNewLine)

    End If

    'ConvertBMP("C:\test.bmp", ImageFormat.Jpeg)

End Sub
Dim MyFiles As New ArrayList()
私有子按钮1\u单击(发送者作为System.Object,e作为System.EventArgs)处理按钮1。单击
TextBox2.Clear()
如果CheckBox2.Checked=True,则
TextBox2.Text=“检查图像的方向…”&vbNewLine&vbNewLine
对于i,整数=0到MyFiles.Count-1
TextBox2.AppendText(“检查”&MyFiles(i)&vbNewLine)
如果Image.FromFile(MyFiles(i)).Width
在Image.FromFile命令周围抛出一个using()。此外,您应该只构建一次图像并检查一次宽度/高度,而不是解码两次

在c#中,它看起来是这样的:

using (var img = Image.FromFile(filename))
{
    if (img.Width < img.Height)
        doSomething();
}
使用(var img=Image.FromFile(文件名))
{
if(img.宽度
或者在VB.Net中(我的VB.Net有点生锈,但我认为这是正确的):

将img调暗为图像
使用img=Image.FromFile(文件名)
如果img.宽度
在Image.FromFile命令周围抛出一个using()。此外,您应该只构建一次图像并检查一次宽度/高度,而不是解码两次

在c#中,它看起来是这样的:

using (var img = Image.FromFile(filename))
{
    if (img.Width < img.Height)
        doSomething();
}
使用(var img=Image.FromFile(文件名))
{
if(img.宽度
或者在VB.Net中(我的VB.Net有点生锈,但我认为这是正确的):

将img调暗为图像
使用img=Image.FromFile(文件名)
如果img.宽度
您没有处理图像对象,这就是您最终“内存不足”的原因。您没有处理图像对象,这就是您最终“内存不足”的原因。非常感谢您的快速回复。我会的。非常感谢你的快速回复。我会的。