파일에서 비트 맵 이미지를로드하고있었습니다. 이미지를 다른 파일에 저장하려고하면 "일반 오류가 GDI +에서 발생했습니다"라는 오류가 발생합니다. 파일이 이미지 객체에 의해 잠겨 있기 때문입니다.GDI +를 사용하여 수정 된 이미지를 원본 파일에 저장
그래, Image.Clone 함수를 호출 해 보았습니다. 여전히 파일을 잠급니다.
hmm. 다음으로 FileStream에서 비트 맵 이미지를로드하고 GDI +가 파일을 잠그지 않도록 메모리에 이미지를로드합니다. 이 예외는 Image.GetThumbnailImage 메서드를 사용하여 축소판을 생성해야 메모리 예외가 발생하는 것을 제외하고는 훌륭하게 작동합니다. 분명히 스트림을 열어이 예외를 막을 수 있도록해야하지만 스트림을 열린 상태로 유지하면 파일이 잠긴 상태로 유지됩니다.
그렇게 좋지는 않습니다. 결국 파일 사본을 만들었습니다. 이제 파일 버전이 2 개 있습니다. 1 C# 프로그램에서 잠그고 조작 할 수 있습니다. 이 원본 파일은 잠금을 해제 한 상태로 수정 내용을 저장할 수 있습니다. 이것은 변경을 취소 한 파일의 사본을 조작하고 있기 때문에 변경 사항을 저장 한 후에도 되돌릴 수있는 보너스입니다.
두 가지 버전의 이미지 파일을 갖지 않고도이 작업을 수행하는 더 좋은 방법이 있습니다. 어떤 아이디어?
:-) 작업 : 그래서 이런 짓을. 그 일을 했어. Ty – Crippeoblade
한 번 완료되면 이미지와 memorystream을 모두 처분해야한다고 생각할 수 있습니까? 이미지 만 폐기해도 메모리 스트림은 계속 남겨 둡니까? – Crippeoblade