c# - 如何在 wpf 应用程序中处理 BitmapDecoder 对象

标签 c# wpf

我开发了一个 WPF 应用程序,使用 BitmapDecoder 来保存图像。在保存图像时我得到一个

insufficient memory to complete the operation exception.

代码看起来像这样:

BitmapDecoder imgDecoder = BitmapDecoder.Create(mem,
BitmapCreateOptions.IgnoreColorProfile, BitmapCacheOption.None);

我认为 BitmapDecoder 对象可能是该异常的原因;我该如何处理该对象?

最佳答案

我遇到了同样的问题。我有一个应用程序使用 BitmapDecoder 加载了数千张图像并且遇到了内存问题。我必须创建一个包装类 ImageFileHandler 来处理与 BitmapDecoder 的所有交互,然后我将我的 BitmapDecoder 实例存储在 WeakReference 中。因此,如果操作系统需要内存,我的弱引用将放弃 BitmapDecoder,然后每次我的 ImageFileHandler 需要它时,它都会在必要时创建一个新的。

关于c# - 如何在 wpf 应用程序中处理 BitmapDecoder 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/949022/

相关文章:

c# - SignalR 实时通知不会持续存在于客户端上

c# - ListView 中的 foreach 语句

c# - 在 WPF/C# 和 Qt/C++ 之间进行选择

c# - WPF 文本框中的按下键只允许一个字符事件

wpf - 是否可以自定义 WPF View 创建机制以使用我自己的 ViewFactory?

wpf - 如何在 WPF 中为按钮创建右键单击上下文菜单

c# - 将 Google AMP(Accelerated Mobile Pages)应用于 ASP.NET Core 站点

c# - 计算自签署之日起每年使用的服务

c# - 是否可以将已签名的 RestSharp NuGet 包与 Twilio 一起使用?

.net - 对象的索引器是否可以通过其 TypeDescriptor 以某种方式访问​​?