当用户控件向用户显示时,在图片框中加载图像

时间:2016-02-18 18:32:54

标签: c# winforms picturebox

我希望使用用户控件在表单中显示大量图像,但它非常慢并占用大量系统内存。

当用户控制向用户显示时,如何在Picture Box中加载图像?

我写了这个示例代码。它适用于700张图像,但我仍在寻找最佳解决方案。

Bitmap myBitmap;
Image myThumbnail;

foreach (var item in queryMatchingFiles)
{
    Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
    myBitmap = new Bitmap(item);
    myThumbnail = myBitmap.GetThumbnailImage(120, 183, myCallback, IntPtr.Zero);

    flowLayoutPanel1.Controls.Add(new PictureBox {
        Image = myThumbnail,
        Width = 120,
        Height = 183,
        BackgroundImageLayout = ImageLayout.Stretch
    });

    count++;
    myBitmap = null;
    myThumbnail = null;
}

public bool ThumbnailCallback()
{
    return false;
}

0 个答案:

没有答案