C#加载图像会导致outofmemory异常(我使用的是.tif或.tiff)

C#加载图像会导致outofmemory异常(我使用的是.tif或.tiff),c#,tiff,C#,Tiff,我曾尝试将.tif和.tiff图像加载到自定义控件picturebox中,我将其循环加载到许多图像中(大约50个),并不断出现内存不足异常错误。我曾尝试使用.tif或.tiff,因为我听说.tif比.tiff小。此外,.png格式也没有任何帮助。我仍然可以更改格式,但我需要保留alpha通道 这是我代码的一部分: foreach (CategoryDTO category in Categories) { foreach(The_Forest_App.JsonObjects.Item i

我曾尝试将.tif和.tiff图像加载到自定义控件picturebox中,我将其循环加载到许多图像中(大约50个),并不断出现内存不足异常错误。我曾尝试使用.tif或.tiff,因为我听说.tif比.tiff小。此外,.png格式也没有任何帮助。我仍然可以更改格式,但我需要保留alpha通道

这是我代码的一部分:

foreach (CategoryDTO category in Categories)
{
    foreach(The_Forest_App.JsonObjects.Item item in category.Items)
    {
        string filepath = "res/img/items/" + Language + "/" + item.Name.Replace(" ", string.Empty).ToLower() + ".png";

        The_Forest_App.Item ItemListed = new The_Forest_App.Item
                {
                    ItemName = item.Name,
                    ItemImage = Image.FromFile(filepath),
                    Parent = itemsFlowLayoutPanel
                };
    }
}

声称对于无效的文件格式也会引发
内存不足
异常。这实际上可能是资源消耗问题吗?我的文件格式不能无效,因为我可以轻松转换或打开它并查看图像,而不会出现任何问题。您不断覆盖
项目列表
,但从未对其执行任何操作。这段代码有什么用?你要做的第一件事是使用
字典
,这样你就可以确保位图只加载一次。接下来要做的是生成一个适合picturebox的图像,这样图像就更小,渲染速度也更快。接下来要做的事情是Project>Properties>Compile选项卡,取消勾选“Preferred32位”,当内存耗尽时,您不喜欢它。声称对于无效的文件格式也会引发
内存不足
异常。这实际上可能是资源消耗问题吗?我的文件格式不能无效,因为我可以轻松转换或打开它并查看图像,而不会出现任何问题。您不断覆盖
项目列表
,但从未对其执行任何操作。这段代码有什么用?你要做的第一件事是使用
字典
,这样你就可以确保位图只加载一次。接下来要做的是生成一个适合picturebox的图像,这样图像就更小,渲染速度也更快。接下来要做的事情是Project>Properties>Compile选项卡,取消勾选“Preferred32位”,当内存耗尽时,您不喜欢它。