gpt4 book ai didi

c# - 在不锁定文件的情况下将 BitmapFrame 用于元数据

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:20 25 4
gpt4 key购买 nike

我发现在 WPF 中获取图像元数据的常用方法是创建一个 BitmapFrame 对象并检查其上的 Metadata 属性。但是我似乎无法创建满足这两个要求的 BitmapFrame 对象:

  1. 不锁定文件
  2. 在给定某些文件时不会抛出奇怪的、未记录的异常

使用这些行似乎可以可靠地创建 BitmapImage:

BitmapFrame.Create(new Uri(imageName));
BitmapFrame.Create(new Uri(imageName), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);

然而,他们将文件锁定了一段不确定的时间。据我所知,BitmapFrame 上没有 dispose 方法。

这样可以防止文件被锁定:

BitmapFrame.Create(new Uri(imageName), BitmapCreateOptions.None, BitmapCacheOption.OnLoad);

但是在 Vista 上,它会在某些文件上抛出 ArgumentExceptionInvalidOperationException,在 Win7 上它会抛出 FileFormatExceptionIOExceptions。这让我觉得缓存 BitmapFrame 不受支持/未经测试。

您能否从 WPF 中的图像中获取元数据,而无需在不确定的时间长度内锁定文件?

最佳答案

您是否尝试过使用转换器方法?比如我的Intuipic应用程序执行此操作。参见 BitmapFrameConverter有关不锁定加载的详细信息,以及 BitmapOrientationConverter获取元数据。

关于c# - 在不锁定文件的情况下将 BitmapFrame 用于元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/767250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com