当有500个活动实例时,ColorConvertedBitmap的构建失败

本文关键字:ColorConvertedBitmap 构建 失败 500个 活动 实例 当有 | 更新日期: 2023-09-27 18:28:31

我在一个处理照片的大型应用程序上工作。在某些情况下,应用程序可以创建500多个ColorConvertedBitmap类实例。不幸的是,当尝试创建501502…时,它总是失败。。。实例。我得到FileFormatException,消息是"位图颜色上下文无效"。然而,我对所有实例使用相同的源和目标颜色上下文,前500个实例不会失败。这是一个错误,还是.NET Framework''OS的颜色管理子系统存在一些资源限制?

[编辑]下面的代码片段在我的电脑上重现了这个问题:

var files = Directory.GetFiles(folderBrowserDialog.SelectedPath, "*.*", SearchOption.TopDirectoryOnly);
ColorContext sourceColorContext = new ColorContext(new Uri(@"d:'!work'ICC'AdobeRGB1998.icc"));
ColorContext destinationColorContext = new ColorContext(new Uri(@"d:'!work'ICC'sRGB Color Space Profile.icm"));
foreach (var file in files)
{
  BitmapImage image = new BitmapImage(new Uri(file));
  ColorConvertedBitmap coloredBitmap = new ColorConvertedBitmap(image, sourceColorContext,  destinationColorContext, image.Format);
  this.bitmaps.Add(coloredBitmap);
}

附言:我用的是Windows 8。

当有500个活动实例时,ColorConvertedBitmap的构建失败

微软已经回答了这个问题:

"这似乎是Windows映像组件-WIC的资源限制。WPF只是转发IWICColorTransform_Initialize_Poxy返回的错误代码(http://msdn.microsoft.com/en-us/library/windows/desktop/gg430025(v=VS.85).aspx)。"

问题出现在Microsoft Connect上。

相关文章:
  • 没有找到相关文章