我有一个带有.png图像的目录,我在c#程序的第三方组合框中显示。因此,用户可以使用组合框选择其中一个图像。使用的基本代码:
Bitmap thump = new Bitmap(<path>);
ComboItem item = new ComboItem();
item.Image = thump;
MyComboBox.Items.Add(item);
现在我想在运行时更新其中一张图片。不幸的是,我无法删除旧图像,因为它仍然在我的程序中打开,因此不知何故我要么关闭它,要么以一种不会让我的程序使用图像的方式打开它。位图的更改不是在我的程序中完成的,我只是将目录的路径传递给另一个程序,该程序将位图保存在那里(但此时失败,因为它无法删除旧的位图)。
我想这是一个简单的问题,但我在这里或在互联网上找不到解决方案。
答案 0 :(得分:1)
首先将文件读入内存,然后使用该数据创建位图。
var m = new MemoryStream(File.ReadAllBytes(filename));
Bitmap thump = (Bitmap)Bitmap.FromStream(m);