사진을 처리하는 큰 응용 프로그램에서 작업합니다. 응용 프로그램에서 ColorConvertedBitmap 클래스의 인스턴스를 500 개 이상 만들 수있는 경우가 있습니다. 불행히도 501, 502, ... 인스턴스를 만들 때 항상 실패합니다. "Bitmap color context is not valid."라는 메시지와 함께 FileFormatException이 발생합니다. 그러나 모든 인스턴스에 대해 동일한 소스 및 대상 색상 컨텍스트를 사용하고 첫 500 인스턴스가 실패하지 않습니다. .NET Framework \ OS의 색상 관리 하위 시스템에 버그가 있거나 리소스 제한이 있습니까?500 라이브 인스턴스가있을 때 ColorConvertedBitmap 구성이 실패합니다.
다음 코드 단편 내 컴퓨터에 문제가 재생 [EDIT]:
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);
}
P.S. 내가 사용하는 Windows 8
, 당신은 당신의 코드는 여기에 넣을 수 있습니다? –
Google 안경은 Microsoft 기술을 접하는 모든 콘텐츠를 무시합니다. 지금 시도해보십시오;) –
EXE 프로젝트의 플랫폼 대상 설정을 AnyCPU로 변경하고 VS2012 +에서 "Prefer 32-bit"를 해제 한 다음 다시 시도하십시오. –