在不锁定WPF文件的情况下获取图像大小

本文关键字:获取 图像 情况下 锁定 WPF 文件 | 更新日期: 2023-09-27 18:13:35

在WPF应用程序中,我在真正加载它之前获得图像大小(宽度和高度)(因为我加载它时减小了尺寸…),我使用这个c#代码来获取它:

BitmapFrame frame = BitmapFrame.Create(new Uri(path), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
Size s = new Size(frame.PixelWidth, frame.PixelHeight);

这工作得很好,但随后它锁定了图像文件,我后来想通过应用程序删除,但不能。如果我设置BitmapCacheOption。OnLoad它解决了这个问题,但随后它会加载图像,所以我失去了我想通过减小尺寸加载它(使用DecodePixelWidth等)获得的优势。

所以有人知道如何获得图像大小事先不锁定图像?

在不锁定WPF文件的情况下获取图像大小

也许你应该使用流在使用块删除锁定后,你得到你的图像大小

using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
   BitmapFrame frame = BitmapFrame.Create(fileStream , BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
   Size s = new Size(frame.PixelWidth, frame.PixelHeight); 
}