如何更改已在使用的图像/位图?

时间:2014-08-17 09:42:45

标签: c# .net bitmap

我有一个带有.png图像的目录,我在c#程序的第三方组合框中显示。因此,用户可以使用组合框选择其中一个图像。使用的基本代码:

Bitmap thump = new Bitmap(<path>);
ComboItem item = new ComboItem();
item.Image = thump;
MyComboBox.Items.Add(item);

现在我想在运行时更新其中一张图片。不幸的是,我无法删除旧图像,因为它仍然在我的程序中打开,因此不知何故我要么关闭它,要么以一种不会让我的程序使用图像的方式打开它。位图的更改不是在我的程序中完成的,我只是将目录的路径传递给另一个程序,该程序将位图保存在那里(但此时失败,因为它无法删除旧的位图)。

我想这是一个简单的问题,但我在这里或在互联网上找不到解决方案。

1 个答案:

答案 0 :(得分:1)

首先将文件读入内存,然后使用该数据创建位图。

var m = new MemoryStream(File.ReadAllBytes(filename));
Bitmap thump = (Bitmap)Bitmap.FromStream(m);