2009-05-01 4 views
2

이 C# 코드를 사용하여 이미지 파일에 액세스하여 메타 데이터를 읽습니다. 프로그램이 끝날 때까지 .NET BitmapSource가 잠금 파일입니다.

BitmapSource img = BitmapFrame.Create(uri); 

불행하게도 uri에 의해 지정된 이미지 파일이 잠 깁니다. 이미지가 잠기지 않게하려면 어떻게합니까?

답변

8

this could help?

편집

BitmapSource img = BitmapFrame.Create(uri,BitmapCreateOptions.None,BitmapCacheOption.OnLoad); 

BitmapCreateOptions.None = 기본 옵션

BitmapCacheOption.OnLoad =로드시 메모리에 전체 이미지를 캐시합니다. 이미지 데이터에 대한 모든 요청은 메모리 저장소에서 채워집니다. here

3

나중에 파일을 삭제하거나 변경할 수있게하려면 전체 파일을 메모리로 읽어 들인 다음 MemoryStream을 대신 지정하십시오. 예 :

MemoryStream data = new MemoryStream(File.ReadAllBytes(file)); 
BitmapSource bitmap = BitmapFrame.Create(data); 
0

또한 일반적인 스트림 사용할 수 있습니다에서

:

Stream stream = File.OpenRead(filename); 
Bitmap template = new Bitmap(stream); // or (Bitmap) Bitmap.FromStream(stream) 
stream.Close(); 
+0

사용 (VAR 스트림 = File.OpenRead는()) 더 나은 방법입니다. 누가 새로운 Bitmap()이 예외를 던질 지 알고 있습니다. –

관련 문제