代码之家  ›  专栏  ›  技术社区  ›  Liam

.NET BitmapSource正在锁定文件

  •  2
  • Liam  · 技术社区  · 17 年前

    BitmapSource img = BitmapFrame.Create(uri);
    

    很遗憾,指定的图像文件 uri 在程序结束前将一直处于锁定状态。如何防止图像被锁定?

    3 回复  |  直到 17 年前
        1
  •  8
  •   Fredou    17 年前

    this could help ?

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

    BitmapCreateOptions.None=默认选项

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

    从…起 here

        2
  •  3
  •   Jon Skeet    17 年前

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

    MemoryStream data = new MemoryStream(File.ReadAllBytes(file));
    BitmapSource bitmap = BitmapFrame.Create(data);
    
        3
  •  0
  •   Max OfLondon    14 年前

    您还可以使用通用流:

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