簡體   English   中英

如何減少ImageList的內存使用量

[英]How to Reduce the Memory usage of ImageList

我使用以下代碼從文件中獲取圖像,通過添加文件夾中的所有文件創建圖像列表,最后將其鏈接到listview控件以顯示縮略圖。問題是如果我添加300圖像,程序使用超過700MB的內存。圖像列表占用了大量內存。我有什么方法可以在運行時壓縮/重新縮放圖像以減少內存使用量,或者有任何替代方案。

                        this.t.Images.Add(Image.FromFile(f));
                        Filelist.Items.Add(f.ToString());
                        ListViewItem item = new ListViewItem();
                        this.listview.Items.Add(item);

將圖像加載到臨時圖像,將其大小調整為新圖像,然后將調整大小的圖像保存在列表中。

using (var tempImage = Image.FromFile(f))
{
    Bitmap bmp = new Bitmap(thumbnailWidth, thumbnailHeight);
    using (Graphics g = Graphics.FromImage(bmp))
    {
        g.DrawImage(tempImage, new Rectangle(0, 0, bmp.Width, bmp.Height);
    }
    t.Images.Add(bmp);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM