[英]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.