如何在C#应用程序中处理1000多个图像?

时间:2010-08-29 23:34:21

标签: c#

目前使用flowlayoutpanel和一组图片框实现用于显示图像列表的winform控件。但即使在缩略图比例(64x64),当我们开始接近1000+图像时,我们得到OutOfMemory异常 - 我们的实际问题在于缩略图生成部分和Image对象的创建。

我无法从网上现有的图像查看示例中找到任何有关大量图像的策略,那么是否有人有任何链接或策略来解决显示1000多张图像列表的问题? / p>

作为一个起点,当缩略图的图片框在视野中时,我们实际上只需要这些图像对象。那么我们只会创建10个图像对象,但除了加载和销毁图像对象之外,还有更聪明的方法吗?

谢谢, 爱德华

2 个答案:

答案 0 :(得分:5)

您应该一次只显示一个图像屏幕。

当用户拖动滚动条时,销毁这些图像并加载新图像。

答案 1 :(得分:0)

WPF以一种很好的方式处理这个问题。如果您已打开虚拟化,则ListBox将仅创建屏幕可见的控件。

在您的情况下,请继续参考列表中的图像。放置一个pictureBox,并根据滚动条更改pictureBox上的图像。