.NET BitmapSource是锁定文件

时间:2009-05-01 16:08:36

标签: c# .net

我正在使用此C#代码访问图像文件,以便从中读取元数据。

BitmapSource img = BitmapFrame.Create(uri);

不幸的是,uri指定的图像文件在程序结束前会被锁定。如何防止图像被锁定?

3 个答案:

答案 0 :(得分:8)

也许this could help

<强> 修改

BitmapSource img = BitmapFrame.Create(uri,BitmapCreateOptions.None,BitmapCacheOption.OnLoad);

BitmapCreateOptions.None =默认选项

BitmapCacheOption.OnLoad =在加载时将整个图像缓存到内存中。所有对图像数据的请求都从内存存储器中填充。

来自here

答案 1 :(得分:3)

如果您希望之后能够立即删除/更改文件,请将整个文件读入内存,然后将其改为MemoryStream。例如:

MemoryStream data = new MemoryStream(File.ReadAllBytes(file));
BitmapSource bitmap = BitmapFrame.Create(data);

答案 2 :(得分:0)

您还可以使用通用流:

Stream stream = File.OpenRead(filename);
Bitmap template = new Bitmap(stream); // or (Bitmap) Bitmap.FromStream(stream)
stream.Close();