gpt4 book ai didi

c# - 如何减少 ImageList 的内存使用

转载 作者:太空宇宙 更新时间:2023-11-03 22:08:07 25 4
gpt4 key购买 nike

我使用以下代码从文件中获取图像,通过添加文件夹中的所有文件创建图像列表,最后将其链接到 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);
}

关于c# - 如何减少 ImageList 的内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7676147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com