写真を処理する大きなアプリケーションに取り組んでいます。アプリケーションが ColorConvertedBitmap クラスの 500 を超えるインスタンスを作成できる場合があります。残念ながら、501、502、... インスタンスを作成しようとすると、常に失敗します。「ビットマップ カラー コンテキストが無効です」というメッセージとともに 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);
}
PS Windows 8を使用しています。