在没有锁定WPF文件的情况下获取图像大小
问题描述:
在WPF应用程序中,我在真正加载图像时获取图像大小(宽度和高度)(因为我使用缩小的大小加载图像...)并且使用此C#代码得到它:在没有锁定WPF文件的情况下获取图像大小
BitmapFrame frame = BitmapFrame.Create(new Uri(path), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
Size s = new Size(frame.PixelWidth, frame.PixelHeight);
这工作正常,但它然后锁定图像文件,我稍后想删除的应用程序,但不能。我知道,如果我设置BitmapCacheOption.OnLoad它解决了这个问题,但它然后加载图像,所以我失去了我想要获得的优势与减小的大小(使用DecodePixelWidth等)。
因此,任何人都知道如何事先获取图像大小而不锁定图像?
答
也许你应该使用块中使用流你得到你的图像大小
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);
}
感谢Stecya后删除锁,它的作品!其实,同时我自己也找到了答案,它与你写的是一样的字母。只有一件事,Size必须在使用块之外声明以供以后使用(但我知道你知道这一点)。 –